http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Cấu trúc (Structure) C# Trong C#, cấu trúc (structure) kiểu liệu Nó giúp bạn tạo biến đơn mà giữ liệu liên quan kiểu liệu đa dạng Từ khóa struct C# sử dụng để tạo cấu trúc (structure) Các cấu trúc sử dụng để biểu diễn ghi (record) Giả sử bạn muốn theo dõi sách thư viện Bạn muốn theo dõi thuộc tính sau sách: Title Author Subject Book ID Định nghĩa cấu trúc C# Để định nghĩa cấu trúc, bạn phải sử dụng lệnh struct Câu lệnh struct định nghĩa kiểu liệu mới, với thành viên chương trình bạn Ví dụ cách bạn khai báo cấu trúc Book: struct Books { public string title; public string author; public string subject; public int book_id; }; Chương trình sau minh họa cách sử dụng cấu trúc C#: using System; struct Books { public string title; public string author; public string subject; http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com public int book_id; }; public class testStructure { public static void Main(string[] args) { Books Book1; /* Declare Book1 of type Book */ Books Book2; /* Declare Book2 of type Book */ /* book specification */ Book1.title = "C Programming"; Book1.author = "Nuha Ali"; Book1.subject = "C Programming Tutorial"; Book1.book_id = 6495407; /* book specification */ Book2.title = "Telecom Billing"; Book2.author = "Zara Ali"; Book2.subject = "Telecom Billing Tutorial"; Book2.book_id = 6495700; /* print Book1 info */ Console.WriteLine( "Book title : {0}", Book1.title); Console.WriteLine("Book author : {0}", Book1.author); Console.WriteLine("Book subject : {0}", Book1.subject); Console.WriteLine("Book book_id :{0}", Book1.book_id); /* print Book2 info */ Console.WriteLine("Book title : {0}", Book2.title); Console.WriteLine("Book author : {0}", Book2.author); Console.WriteLine("Book subject : {0}", Book2.subject); http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Console.WriteLine("Book book_id : {0}", Book2.book_id); Console.ReadKey(); } } Khi code biên dịch thực thi, cho kết quả: Book title : C Programming Book author : Nuha Ali Book subject : C Programming Tutorial Book book_id : 6495407 Book title : Telecom Billing Book author : Zara Ali Book subject : Telecom Billing Tutorial Book book_id : 6495700 Đặc điểm cấu trúc C# Ở trên, bạn sử dụng cấu trúc Books đơn giản Các cấu trúc C# khác với kiểu cấu trúc truyền thống C C++ Cấu trúc C# có đặc điểm sau: Cấu trúc có phương thức, trường, indexer, thuộc tính, phương thức operator, kiện Cấu trúc có constructor định nghĩa, khơng có destructor Tuy nhiên, bạn khơng thể định nghĩa constructor mặc định cho cấu trúc Constructor mặc định định nghĩa tự động bị thay đổi Không giống Lớp, cấu trúc kế thừa từ cấu trúc lớp khác Cấu trúc sử dụng sở cho cấu trúc lớp khác Một cấu trúc triển khai nhiều Interface Thành viên cấu trúc xác định dạng abstract, virtual, protected http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Khi bạn tạo đối tượng Struct sử dụng tốn tử new, lấy đối tượng tạo constructor thích hợp gọi Khơng giống Lớp, cấu trúc thuyết minh mà khơng cần sử dụng tốn tử new Nếu tốn tử new khơng sử dụng, trường chưa gán đối tượng sử dụng tới tất trường khởi tạo Phân biệt Class Structure C# Lớp Cấu trúc C# có số điểm khác sau: Các Lớp kiểu tham chiếu, cấu trúc kiểu giá trị Cấu trúc khơng hỗ trợ tính kế thừa Cấu trúc khơng có constructor mặc định Từ điểm trên, viết lại ví dụ trên: 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); http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com 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(); /* Declare Book1 of type Book */ Books Book2 = new Books(); /* Declare Book2 of type Book */ /* book specification */ Book1.getValues("C Programming", "Nuha Ali", "C Programming Tutorial",6495407); /* book specification */ Book2.getValues("Telecom Billing", "Zara Ali", "Telecom Billing Tutorial", 6495700); /* print Book1 info */ Book1.display(); /* print Book2 info */ Book2.display(); Console.ReadKey(); } } http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/csharp/index.jsp Copyright © vietjack.com Khi code biên dịch thực thi, cho kết quả: 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 http://vietjack.com/ Trang chia sẻ học online miễn phí Page ... sử dụng c u tr c Books đơn giản C c c u tr c C# kh c với kiểu c u tr c truyền thống C C++ C u tr c C# c đ c điểm sau: C u tr c c phương th c, trường, indexer, thu c tính, phương th c operator,... Lớp, c u tr c kế thừa từ c u tr c lớp kh c C u tr c sử dụng sở cho c u tr c lớp kh c Một c u tr c triển khai nhiều Interface Thành viên c u tr c x c định dạng abstract, virtual, protected http://vietjack.com/... biệt Class Structure C# Lớp C u tr c C# c số điểm kh c sau: C c Lớp kiểu tham chiếu, c u tr c kiểu giá trị C u tr c khơng hỗ trợ tính kế thừa C u tr c khơng c constructor m c định Từ điểm