| 11 - مقدمه اي بر سي شارپ |
| نوشته شده توسط مدیریت سایت |
|
Jagged arrays Jagged arrays آرايه اي از آرايه ها است و همانطور كه ذكر شد لزومي ندارد كه هر رديف آن با رديف بعدي هم طول باشد . هنگام تعريف اين نوع آرايه شما تعداد رديف ها را مشخص مي نماييد. هر رديف يك آرايه را نگهداري مي كند. در اينجا هر آرايه بايد تعريف شود. روش تعريف Jagged array به صورت زير است type [] []... در اينجا تعداد براكت ها بيانگر ابعاد آرايه مي باشد. براي مثال آرايه ي زير دو بعدي است : int [] [] myJaggedArray; و براي مثال براي دسترسي به پنجمين عنصر آرايه ي سوم به صورت زير عمل مي شود : myJaggedArray[2][4] مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex21 انتخاب نماييد. سپس كد زير را درون آن بنويسيد : using System; توضيحاتي در مورد كد فوق : namespace ex21 { class Class1 { [STAThread] static void Main(string[] args) { const int rows = 4; // declare the jagged array as 4 rows high int[][] jaggedArray = new int[rows][]; // the first row has 5 elements jaggedArray[0] = new int[5]; // a row with 2 elements jaggedArray[1] = new int[2]; // a row with 3 elements jaggedArray[2] = new int[3]; // the last row has 5 elements jaggedArray[3] = new int[5]; // Fill some (but not all) elements of the rows jaggedArray[0][3] = 15; jaggedArray[1][1] = 12; jaggedArray[2][1] = 9; jaggedArray[2][2] = 99; jaggedArray[3][0] = 10; jaggedArray[3][1] = 11; jaggedArray[3][2] = 12; jaggedArray[3][3] = 13; jaggedArray[3][4] = 14; for (int i = 0;i < 5; i++) { Console.WriteLine("jaggedArray[0][{0}] = {1}", i,jaggedArray[0][i]); } for (int i = 0;i < 2; i++) { Console.WriteLine("jaggedArray[1][{0}] = {1}", i,jaggedArray[1][i]); } for (int i = 0;i < 3; i++) { Console.WriteLine("jaggedArray[2][{0}] = {1}", i,jaggedArray[2][i]); } for (int i = 0;i < 5; i++) { Console.WriteLine("jaggedArray[3][{0}] = {1}", i,jaggedArray[3][i]); } Console.ReadLine(); } } } هنگام كار با آرايه هاي rectangular براي درسترسي به اعضا به صورت زير عمل مي شد : rectangularArrayrectangularArray[i,j] اما در اينجا بدين صورت است : jaggedArray[3][i] استفاده از System.Array : دات نت فريم ورك كلاسي را معرفي كرده است به نام Array. توسط اين كلاس كار با آرايه ها و اعمال روي آنها براي مثال سورت كردن و غيره به شدت ساده مي شود . مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex22 انتخاب نماييد. سپس كد زير را درون آن بنويسيد : using System; namespace ex22 { class Class1 { public static void PrintMyArray(object[] theArray) { foreach (object obj in theArray) { Console.WriteLine("Value: {0}", obj); } Console.WriteLine(" "); } [STAThread] static void Main(string[] args) { String[] myArray = { "Who", "is", "John", "Galt" }; PrintMyArray(myArray); Array.Reverse(myArray); PrintMyArray(myArray); String[] myOtherArray = { "We", "Hold", "These", "Truths", "To", "Be", "Self", "Evident" }; PrintMyArray(myOtherArray); Array.Sort(myOtherArray); PrintMyArray(myOtherArray); Console.ReadLine() ; } } } توضيحاتي در مورد كد فوق : using System; توضيحاتي در مورد كد فوق : using System.Collections; namespace ex23 { // a simple class to store in the array public class Employee { public Employee(int empID) { this.empID = empID; } public override string ToString( ) { return empID.ToString( ); } public int EmpID { get { return empID; } set { empID = value; } } private int empID; } class Class1 { [STAThread] static void Main(string[] args) { ArrayList empArray = new ArrayList( ); ArrayList intArray = new ArrayList( ); // populate the array for (int i = 0;i<5;i++) { empArray.Add(new Employee(i+100)); intArray.Add(i*5); } // print all the contents for (int i = 0;i { Console.Write("{0} ", intArray[i].ToString( )); } Console.WriteLine(" "); // print all the contents of the button array for (int i = 0;i { Console.Write("{0} ", empArray[i].ToString( )); } Console.WriteLine(" "); Console.WriteLine("empArray.Capacity: {0}", empArray.Capacity); Console.ReadLine(); } } } 1- با كلمه ي كليدي override در قسمت هاي بعدي آشنا خواهيم شد. 2- براي استفاده از ArrayList لازم بود تا فضاي نامي را كه اين كلاس در آن تعريف شده است ، به برنامه اضافه كرد. 3- در مثال فوق نحوه ي تعريف دو كلاس را در يك فضاي نام مشاهده مي نماييد. 4- نحوه ي تعريف و مقدار دهي ArrayList و همچنين استفاده از خواص آن در مثال فوق بررسي شده است |
