Struktur C# (Struktur)
Dalam C#, struktur ialah struktur data jenis nilai. Ia membenarkan pembolehubah tunggal untuk menyimpan data berkaitan pelbagai jenis data. Kata kunci struct digunakan untuk mencipta struktur. Struktur
digunakan untuk mewakili rekod. Katakan anda ingin menjejaki pergerakan buku dalam perpustakaan anda. Anda mungkin mahu menjejaki sifat berikut untuk setiap buku:
Tajuk
Pengarang
Subjek
ID Buku
Mentakrifkan Struktur
Untuk menentukan struktur, anda mesti menggunakan struct kenyataan. Pernyataan struct mentakrifkan jenis data baharu dengan berbilang ahli untuk program.
Sebagai contoh, anda boleh mengisytiharkan struktur Buku seperti berikut:
struct Books { public string title; public string author; public string subject; public int book_id; };
Atur cara berikut menunjukkan penggunaan struktur:
using System; struct Books { public string title; public string author; public string subject; public int book_id; }; public class testStructure { public static void Main(string[] args) { Books Book1; /* 声明 Book1,类型为 Book */ Books Book2; /* 声明 Book2,类型为 Book */ /* book 1 详述 */ Book1.title = "C Programming"; Book1.author = "Nuha Ali"; Book1.subject = "C Programming Tutorial"; Book1.book_id = 6495407; /* book 2 详述 */ Book2.title = "Telecom Billing"; Book2.author = "Zara Ali"; Book2.subject = "Telecom Billing Tutorial"; Book2.book_id = 6495700; /* 打印 Book1 信息 */ Console.WriteLine( "Book 1 title : {0}", Book1.title); Console.WriteLine("Book 1 author : {0}", Book1.author); Console.WriteLine("Book 1 subject : {0}", Book1.subject); Console.WriteLine("Book 1 book_id :{0}", Book1.book_id); /* 打印 Book2 信息 */ Console.WriteLine("Book 2 title : {0}", Book2.title); Console.WriteLine("Book 2 author : {0}", Book2.author); Console.WriteLine("Book 2 subject : {0}", Book2.subject); Console.WriteLine("Book 2 book_id : {0}", Book2.book_id); Console.ReadKey(); } }
Apabila kod di atas disusun dan dilaksanakan , yang menghasilkan keputusan berikut:
Book 1 title : C Programming Book 1 author : Nuha Ali Book 1 subject : C Programming Tutorial Book 1 book_id : 6495407 Book 2 title : Telecom Billing Book 2 author : Zara Ali Book 2 subject : Telecom Billing Tutorial Book 2 book_id : 6495700
Ciri Struktur C#
Anda telah menggunakan struktur ringkas yang dipanggil Buku. Struktur dalam C# adalah berbeza daripada struktur dalam C atau C++ tradisional. Struktur dalam C# mempunyai ciri-ciri berikut:
Struktur boleh mempunyai kaedah, medan, indeks, sifat, kaedah operator dan peristiwa. Struktur
boleh mentakrifkan pembina, tetapi bukan pemusnah. Walau bagaimanapun, anda tidak boleh menentukan pembina lalai untuk struktur. Pembina lalai ditakrifkan secara automatik dan tidak boleh diubah.
Tidak seperti kelas, struktur tidak boleh mewarisi struktur atau kelas lain. Struktur
tidak boleh digunakan sebagai struktur asas untuk struktur atau kelas lain. Struktur
boleh melaksanakan satu atau lebih antara muka.
Ahli struktur tidak boleh ditentukan sebagai abstrak, maya atau dilindungi.
Apabila anda mencipta objek struct menggunakan operator New, pembina yang sesuai dipanggil untuk mencipta struct. Tidak seperti kelas, struktur boleh dijadikan instantiated tanpa menggunakan operator Baharu.
Jika operator Baharu tidak digunakan, medan diberikan nilai dan objek hanya digunakan selepas semua medan dimulakan.
Kelas vs struktur
Kelas dan struktur mempunyai perbezaan asas berikut:
Kelas ialah jenis rujukan, Struktur ialah nilai jenis. Struktur
tidak menyokong pewarisan. Struktur
tidak boleh mengisytiharkan pembina lalai.
Sebagai tindak balas kepada perbincangan di atas, mari kita tulis semula contoh sebelumnya:
using System; struct Books { private string title; private string author; private string subject; private int book_id; public void getValues(string t, string a, string s, int id) { title = t; author = a; subject = s; book_id = id; } public void display() { Console.WriteLine("Title : {0}", title); Console.WriteLine("Author : {0}", author); Console.WriteLine("Subject : {0}", subject); Console.WriteLine("Book_id :{0}", book_id); } }; public class testStructure { public static void Main(string[] args) { Books Book1 = new Books(); /* 声明 Book1,类型为 Book */ Books Book2 = new Books(); /* 声明 Book2,类型为 Book */ /* book 1 详述 */ Book1.getValues("C Programming", "Nuha Ali", "C Programming Tutorial",6495407); /* book 2 详述 */ Book2.getValues("Telecom Billing", "Zara Ali", "Telecom Billing Tutorial", 6495700); /* 打印 Book1 信息 */ Book1.display(); /* 打印 Book2 信息 */ Book2.display(); Console.ReadKey(); } }
Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:
Title : C Programming Author : Nuha Ali Subject : C Programming Tutorial Book_id : 6495407 Title : Telecom Billing Author : Zara Ali Subject : Telecom Billing Tutorial Book_id : 6495700