Trong C #, một structures là một kiểu dữ liệu. Nó giúp bạn tạo một quan hệ giữa các biến đơn. Từ khóa struct được sử dụng để tạo ra một structures.
Structures này được sử dụng để đại diện cho một thực thể. Giả sử bạn muốn theo dõi số sách ở thư viện. Bạn có thể theo dõi các thuộc tính sau về mỗi cuốn sách:
- Tiêu đề
- Tác giả
- Loại sách
- Mã sách
Định nghĩa một structure
Để xác định một strucsture, bạn phải sử dụng câu lệnh struct. Câu lệnh struct định nghĩa một kiểu dữ liệu mới, với nhiều hơn một phần tử cho chương trình của bạn.
Ví dụ, đây là cách bạn có thể khai báo structures cho một quyển sách:
struct Sach { public string tieude; public string tacgia; public string loai; public int masach; };
Chương trình sau đây cho thấy việc sử dụng structures:
using System; struct Sach { public string tieude; public string tacgia; public string loai; public int masach; }; public class testStructure { public static void Main(string[] args) { Sach sach1; /* KHAI BAO SACH THU 1 */ Sach sach2; /* KHAI BAO SACH THU 2 */ /* DAC DIEM CUA SACH 1 */ sach1.tieude = "Tu hoc C#"; sach1.tacgia = "Tac gia 1"; sach1.loai = "Sach tham khao"; sach1.masach = 1234; /* DAAC DIEM CUA SACH 2 */ sach2.tieude = "Giao trinh C#"; sach2.tacgia = "Tac gia 2"; sach2.loai = "Sach giao trinh"; sach2.masach = 5678; /* IN THONG TIN SACH 1 */ Console.WriteLine( "Tieu de sach 1 : {0}", sach1.tieude); Console.WriteLine("Tac gia sach 1 : {0}", sach1.tacgia); Console.WriteLine("Loai sach 1 : {0}", sach1.loai); Console.WriteLine("Ma sach 1 :{0}", sach1.masach); /* IN THONG TIN SACH 2 */ Console.WriteLine( "Tieu de sach 2 : {0}", sach2.tieude); Console.WriteLine("Tac gia sach 2 : {0}", sach2.tacgia); Console.WriteLine("Loai sach 2 : {0}", sach2.loai); Console.WriteLine("Ma sach 2 :{0}", sach2.masach); Console.ReadKey(); } }
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả như sau:
Tieu de sach 1 : Tu hoc C# Tac gia sach 1 : Tac gia 1 Loai sach 1 : Sach tham khao Ma sach 1 : 1234 Tieu de sach 2 : Giao trinh C# Tac gia sach 2 : Tac gia 2 Loai sach 2 : Sach giao trinh Ma sach 2 : 5678
Đặc điểm của Structures
Bạn đã sử dụng một struct đơn giản tên là Sách. Structure trong C # khá là khác so với các ngôn ngữ truyền thống C hay C ++. Structures trong C # có các đặc tính sau:
Stucture có thể có các phương thức, fields, chỉ mục, properties, phương thức điều hành, và các sự kiện.
Stucture có thể khởi tạo, nhưng không thể hủy. Tuy nhiên, bạn không thể định nghĩa một hàm khởi tạo mặc định cho một Stucture. Các hàm khởi tạo mặc định được tự động xác định và không thể thay đổi.
Không giống như các lớp, structure không thể thừa kế các structure hoặc các lớp khác
Cấu trúc không thể làm cơ sở cho các cấu trúc hoặc các lớp khác.
Một cấu trúc có thể thực hiện một hoặc nhiều giao diện
Các thành phần của structure không thể sử dụng các phân quyền truy cập như abstract, virtual, or protected.
Lớp so với structure
Lớp và structure có sự khác biệt cơ bản sau đây:
- Lớp là kiểu tham chiếu và structure là kiểu giá trị
- Structure không hỗ trợ kế thừa
- Structure khong có hàm khởi tạo mặc định
Từ các lý thuyết trên, chúng ta hãy thử với ví dụ sau:
using System; struct Sach { public string tieude;<br> public string tacgia;<br> public string loai;<br> public int masach; public void getValues(string td, string tg, string l, int ma) { tieude = td; tacgia = tg; loai = l; masach = ma; } public void display() { Console.WriteLine("Tieu de : {0}", tieude); Console.WriteLine("Tac gia : {0}", tacgia); Console.WriteLine("Loai sach : {0}", loai); Console.WriteLine("Ma sach :{0}", masach); } }; public class testStructure { public static void Main(string[] args) { Sach sach1; /* KHAI BAO SACH THU 1 */<br> Sach sach2; /* KHAI BAO SACH THU 2 */ /*TAO CAC THUOC TINH CHO SACH 1*/ sach1.getValues("Tu hoc C#", "Tac gia 1", "Sach tham khao",1234); /*TAO CAC THUOC TINH CHO SACH 2*/ sach2.getValues("Giao trinh C#", "Tac gia 2", "Sach giao trinh",5678); /* IN SACH 1 */ sach1.display(); /* IN SACH 2 */ sach2.display(); Console.ReadKey(); } }
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra các kết quả như sau:
Tieu de sach 1 : Tu hoc C# Tac gia sach 1 : Tac gia 1 Loai sach 1 : Sach tham khao Ma sach 1 : 1234 Tieu de sach 2 : Giao trinh C# Tac gia sach 2 : Tac gia 2 Loai sach 2 : Sach giao trinh Ma sach 2 : 5678
Chúc bạn thành công!