Mặc nhiên, các cấu trúc vẫn kế thừa từ Object như bất cứ kiểu dữ liệu giá trị nào khác trong C#/. Câu hỏi 2: Trong hai dạng mảng và tập hợp thì lại nào chứa cấu trúc tốt hơn? Trả lời 2: Cấu trúc có hiệu quả khi sử dụng trong mảng hơn là lưu chúng dưới dạng tập hợp. Dạng tập hợp tốt với kiểu dữ liệu tham chiếu. Câu hỏi 3: Cấu trúc được lưu trữ ở đâu? Trả lời 3: Cấu trúc như đã đề cập là kiểu dữ liệu giá trị nên nó được lưu. | Giáo trình hướng dẫn truy cập phương thức gán đối tượng cho một giao diện đối lập trừu tượng Câu hỏi 2 . Trong hai dạng mảng và tập hợp thì lại nào chứa cấu trúc tốt hơn Trả lời 2 Cấu trúc có hiệu quả khi sử dụng trong mảng hơn là lưu chúng dưới dạng tập hợp. Dạng tập hợp tốt với kiểu dữ liệu tham chiếu. Câu hỏi 3 Cấu trúc được lưu trữ ở đâu Trả lời 3 Cấu trúc như đã đề cập là kiểu dữ liệu giá trị nên nó được lưu trữ trên stack của chương trình. Ngược với kiểu tham chiếu được đặt trên heap. Câu hỏi 4 Khi truyền cấu trúc cho một phương thức thì dưới hình thức nào Trả lời 4 Do là kiểu giá trị nên khi truyền một đối tượng cấu trúc cho một phương thức thì nó được truyền dưới dạng tham trị chứ không phải tham chiếu. Câu hỏi 5 Vậy làm thế nào truyền cấu trúc dưới dạng tham chiếu cho một phương thức Trả lời 5 Cũng giống như truyền tham chiếu một kiểu giá trị như int long char. Ta khai báo khóa ref cho các tham số kiểu cấu trúc. Và khi gọi phương thức thì thêm từ khóa ref vào trước đối mục cấu trúc được truyền vào. Câu hỏi thêm Câu hỏi 1 Chúng ta có thể khởi tạo giá trị ban đầu cho các biến thành viên của nó như bên dưới được không Nếu không được tại sao struct myStruct private int mNum 100 Câu hỏi 2 Sự khác nhau giữa kiểu dữ liệu tham chiếu và kiểu dữ liệu giá trị Câu hỏi 3 Sự khác nhau giữa bộ khởi dựng của cấu trúc và bộ khởi dựng của lớp Câu hỏi 4 Có nhất thiết phải dùng từ khóa new để tạo đối tượng kiểu cấu trúc hay không Nếu không thì còn cách nào khác nữa Câu hỏi 5 Quá trình boxing và unboxing có diễn ra với một đối tượng là kiểu cấu trúc hay không Bài tập Bài tập 1 Chương trình sau đây có lỗi. Hãy sửa lỗi biên dịch và chạy chương trình. Đoạn lệnh nào gây ra lỗi using System struct TheStruct 173 Cấu Trúc Ngôn Ngữ Lập Trình C public int x public TheStruct x 10 class TestClass public static void structtaker TheStruct s 5 public static void Main TheStruct a new TheStruct 1 structtaker a 0 Bài tâp 2 Hãy tính kết quả bằng tay mà chương .