Tatasusunan mewakili bilangan elemen tetap bagi jenis tertentu. Elemen disimpan dalam blok memori bersebelahan, dan anda boleh mengakses elemen dengan cekap selagi anda mengetahui indeksnya.
Sintaks C# untuk mengisytiharkan dan memulakan tatasusunan adalah seperti berikut -
// create a string array to hold 5 languages string[] languages = new string[3];
Selepas mengisytiharkan tatasusunan, anda boleh menggunakan simbol segi empat sama pada tatasusunan untuk mengisi item dalam tatasusunan.
languages[0] = "csharp"; languages[1] = "visual basic"; languages[2] = "f#";
Walau bagaimanapun, terdapat alternatif sintaks ringkas yang menggabungkan dua langkah di atas dalam satu langkah.
string[] languages = new string[] { "csharp", "visual basic", "f#" };
Dengan pembolehubah yang ditaip secara tersirat dalam C#, anda boleh menyingkirkan jenis di sebelah kiri nama pembolehubah dan hanya menggunakan var.
var languages = new string[] { "csharp", "visual basic", "f#" };
Anda boleh mengakses mana-mana elemen dalam tatasusunan menggunakan tatatanda segi empat sama.
string language = languages[0]; Console.WriteLine(language); // prints csharp
Sifat Panjang tatasusunan memberitahu kita berapa banyak item dalam tatasusunan.
int count = languages.Length; Console.WriteLine(count); // 3
Adalah penting untuk diingat bahawa panjang tatasusunan tidak boleh diubah setelah ia dibuat. Percubaan untuk mengakses elemen di luar sempadan tatasusunan membuang pengecualian.
string lang = languages[3]; // throws System.IndexOutOfRangeException
Jika anda ingin menggelung pada tatasusunan, gunakan gelung for atau foreach yang disediakan oleh bahasa tersebut.
// for loop for (int i = 0; i < languages.Length; i++){ string l = languages[i]; Console.WriteLine(l); // prints the names of languages in sequence } // foreach loop foreach (string l in languages){ Console.WriteLine(l); // prints the names of languages in sequence }
Apabila anda mencipta tatasusunan, pengkompil C# memulakan elemen kepada nilai lalainya. Sebagai contoh, mencipta tatasusunan integer menetapkan nilai setiap elemen kepada 0.
var numbers = new int[3]; foreach (int num in numbers){ Console.WriteLine(num); // prints 000 }
Apabila elemen adalah daripada jenis nilai, setiap ahli jenis itu diberikan nilai lalainya.
Point[] a = new Point[4]; int x = a[2].X; Console.WriteLine(x); // prints 0 public struct Point { public int X, Y; }
Walau bagaimanapun, untuk jenis rujukan, pengkompil hanya mencipta rujukan nol untuk setiap item.
User[] u = new User[4]; int y = u[2].Y; // NullReference exception public class User { public int X, Y; }
Untuk mengelakkan ralat ini, anda mesti memulakan setiap item secara eksplisit seperti yang ditunjukkan di bawah.
User[] users = new User[5]; for (int i = 0; i < users.Length; i++) // Iterate i from 0 to 999 users[i] = new User();
Demonstrasi masa nyata
using System; class Program{ static void Main(){ string[] languages = new string[3]; // create a string array to hold 5 languages languages[0] = "csharp"; languages[1] = "visual basic"; languages[2] = "f#"; string[] langugages_two = new string[] { "csharp", "visual basic", "f#" }; var languages_three = new string[] { "csharp", "visual basic", "f#" }; string language = languages[0]; Console.WriteLine(language); // prints csharp int count = languages.Length; // 3 Console.WriteLine(count); //string lang = languages[3]; // throws System.IndexOutOfRangeException // for loop for (int i = 0; i < languages.Length; i++){ string l = languages[i]; Console.WriteLine(l); // prints the names of languages in sequence } // foreach loop foreach (string l in languages){ Console.WriteLine(l); // prints the names of languages in sequence } var numbers = new int[3]; foreach (int num in numbers){ Console.WriteLine(num); // prints 000 } Point[] a = new Point[4]; int x = a[2].X; Console.WriteLine(x); // prints 0 User[] u = new User[4]; //int y = u[2].Y; // NullReference exception User[] users = new User[5]; for (int i = 0; i <users.Length; i++) // Iterate i from 0 to 999 users[i] = new User(); } } public struct Point { public int X, Y; } public class User { public int X, Y; }
csharp 3 csharp visual basic f# csharp visual basic f# 0 0 0 0
Atas ialah kandungan terperinci Bagaimanakah tatasusunan berfungsi dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!