tailieunhanh - Hướng Đối Tượng Trong C# part 7

Struct Cú pháp để định nghĩa một struct được mô tả trong ví dụ sau: struct Dimensions { public double Length; public double Width; } Ta thấy Dimensions được định nghĩa như trên gọi là một struct. Một struct dùng để nhóm một số dữ liệu lại với nhau. | Struct Cú pháp để định nghĩa một struct được mô tả trong ví dụ sau struct Dimensions public double Length public double Width Ta thấy Dimensions được định nghĩa như trên gọi là một struct. Một struct dùng để nhóm một số dữ liệu lại với nhau. Trong C một struct được định nghĩa gần giống như một lớp chỉ khác từ khoá và một vài điểm như sau là một kiểu giá trị không phải là kiểu tham khảo. 2. Struct không hổ trợ thừa kế. 3. Có vài sự khác nhau trong cách làm việc của các constructor đối với struct. Trình biên dịch luôn luôn cung cấp một constructor không tham số mặc định và không được cho phép thay thế. 4. Với một struct bạn có thể chỉ rỏ cách mà các trường được đặt ngoài bộ nhớ. Struct là các kiểu giá trị Mặc dù struct là kiểu giá trị nhưng cú pháp để sử dụng nó giống như sử dụng lớp. Ví dụ như bạn khai báo như trên thì bạn có thể viết như sau Dimensions point new Dimensions 3 6 Chú ý rằng struct là các kiểu giá trị do đó thao tác new sẽ không làm việc theo cách của lớp hay những kiểu tham khảo khác. Nó chỉ đon giản định vị trên bộ nhớ và gọi constructor thích hợp để khởi tạo các trường. Do đó bạn hoàn toàn có thể viết Dimensions point 3 6 Neu Dimensions là một lớp thì đoạn mã trên sẽ báo lỗi nhưng là một struct thì hoàn toàn hợp lý. Bởi vì là một struct rất dể để gán giá trị. Nhưng trình biên dịch sẽ báo lỗi nếu bạn viết mã như sau Dimensions point Double D Trình biên dịch sẽ báo bạn đã sử dụng một biến chưa khởi tạo. Và khi sử dụng struct bạn phải tuân thủ một số quy định sau cho mọi kiểu dữ liệu Mọi thứ đều phải được khởi tạo trước khi sử dụng. Một struct được xem như được khởi tạo đầy đủ khi thao tác new được gọi hay khi tất cả các trường đều được gán giá trị. Một struct được định nghĩa là một trường thành viên của một lớp thì nó sẽ được tự động khởi tạo khi đối tượng khởi tạo. Struct và thừa kế Struct không hổ trợ thừa kế tức là bạn không thể thừa kế từ một struct khác hay từ bất kỳ lớp nào