Cấu trúc (Struct) trong C#
Trong C#, một cấu trúc (structure) là một kiểu dữ liệu. Nó giúp bạn tạo một biến đơn mà giữ dữ liệu liên quan của các kiểu dữ liệu đa dạng. Từ khóa struct trong C# được sử dụng để tạo một cấu trúc (structure). Các cấu trúc được sử dụng để biểu diễn một bản ghi (record). Giả sử bạn muốn ...
Trong C#, một cấu trúc (structure) là một kiểu dữ liệu. Nó giúp bạn tạo một biến đơn mà giữ dữ liệu liên quan của các kiểu dữ liệu đa dạng. Từ khóa struct trong C# được sử dụng để tạo một cấu trúc (structure).
Các cấu trúc được sử dụng để biểu diễn một bản ghi (record). Giả sử bạn muốn theo dõi các cuốn sách trong một thư viện. Bạn có thể muốn theo dõi các thuộc tính sau của mỗi cuốn sách:
Định nghĩa cấu trúc trong 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 một kiểu dữ liệu mới, với hơn một thành viên trong chương trình của bạn.
Ví dụ dưới đây là cách bạn khai báo cấu trúc Book:
struct Books { public string ten_sach; public string tac_gia; public string the_loai; public int ma_sach; };
Chương trình sau minh họa cách sử dụng cấu trúc trên trong C#:
using System; //cau truc book struct Book { public string ten_sach; public string tac_gia; public string the_loai; public int ma_sach; }; namespace code24hCsharp { class TestCsharp { static void Main(string[] args) { Console.WriteLine("Struct trong C#"); Console.WriteLine("---------------------------- "); Book Book1; /* khai bao Book1 thuoc kieu cau truc Book */ Book Book2; /* khai bao Book2 thuoc kieu cau truc Book */ /* thong tin chi tiet ve Book1 */ Book1.ten_sach = "English Grammar in Use"; Book1.tac_gia = "Raymond Murphy"; Book1.the_loai = "Tieng Anh"; Book1.ma_sach = 6495407; /* thong tin chi tiet ve Book2 */ Book2.ten_sach = "Toan hoc cao cap"; Book2.tac_gia = "Tran Van A"; Book2.the_loai = "Toan hoc"; Book2.ma_sach = 6495700; /* in cac thong tin cua Book1*/ Console.WriteLine("In thong tin cua cuon sach 1:"); Console.WriteLine("Ten sach: {0}", Book1.ten_sach); Console.WriteLine("Tac gia: {0}", Book1.tac_gia); Console.WriteLine("The loai: {0}", Book1.the_loai); Console.WriteLine("Ma sach: {0}", Book1.ma_sach); /* in cac thong tin cua Book2 */ Console.WriteLine(" In thong tin cua cuon sach 2:"); Console.WriteLine("Ten sach: {0}", Book2.ten_sach); Console.WriteLine("Tac gia: {0}", Book2.tac_gia); Console.WriteLine("The loai: {0}", Book2.the_loai); Console.WriteLine("Ma sach: {0}", Book2.ma_sach); Console.ReadKey(); } } }
Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.
Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:
Đặc điểm của cấu trúc trong C#
Ở trên, bạn đã sử dụng một cấu trúc Books đơn giản. Các cấu trúc trong C# là khá khác với kiểu cấu trúc truyền thống trong C hoặc C++. Cấu trúc trong C# có các đặc điểm sau:
Phân biệt Class và Structure trong C#
Lớp và Cấu trúc trong C# có một số điểm khác nhau cơ bản sau:
Từ các điểm trên, chúng ta viết lại ví dụ trên:
using System; struct Book { private string ten_sach; private string tac_gia; private string the_loai; private int ma_sach; public void nhapGiaTri(string t, string a, string s, int id) { ten_sach = t; tac_gia = a; the_loai = s; ma_sach = id; } public void display() { Console.WriteLine("Tieu de: {0}", ten_sach); Console.WriteLine("Tac gia: {0}", tac_gia); Console.WriteLine("The loai: {0}", the_loai); Console.WriteLine("Ma sach: {0}", ma_sach); } }; public class TestCsharp { public static void Main(string[] args) { Console.WriteLine("Struct trong C#"); Console.WriteLine("------------------------ "); Book Book1 = new Book(); /* Khai bao Book1 thuoc kieu cau truc Book */ Book Book2 = new Book(); /* Khai bao Book2 thuoc kieu cau truc Book */ /* thong tin Book1 */ Book1.nhapGiaTri("English Grammer in Use", "Raymond Murphy", "Tieng Anh", 6495407); /* thong tin book2 */ Book2.nhapGiaTri("Toan hoc cao cap", "Tran Van A", "Toan hoc", 6495700); /* In thong tin Book1 */ Console.WriteLine("In thong tin cua cuon sach 1:"); Book1.display(); /* In thong tin Book2 */ Console.WriteLine(" In thong tin cua cuon sach 2:"); Book2.display(); Console.ReadKey(); } }
Nếu bạn không sử dụng lệnh Console.ReadKey(); thì chương trình sẽ chạy và kết thúc luôn (nhanh quá đến nỗi bạn không kịp nhìn kết quả). Lệnh này cho phép chúng ta nhìn kết quả một cách rõ ràng hơn.
Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau: