Trong C#, Struct và Class là hai cấu trúc dữ liệu cơ bản được sử dụng để định nghĩa các kiểu dữ liệu mới, nhưng chúng có một số sự khác biệt quan trọng về cách thức hoạt động và mục đích sử dụng:
Struct
- Kiểu giá trị (Value Type): Struct là kiểu giá trị, nghĩa là khi một struct được gán cho một biến mới hoặc được truyền như một tham số, một bản sao của nó sẽ được tạo ra và sử dụng.
- Stack Allocation: Bộ nhớ cho struct thường được cấp phát trên stack, làm cho việc truy cập nhanh hơn nhưng có hạn chế về kích thước và thời gian sống.
- Không hỗ trợ kế thừa: Struct không thể kế thừa từ một struct hoặc class khác, nhưng có thể thực thi các interface.
- Mục đích sử dụng: Struct thường được sử dụng cho các kiểu dữ liệu nhỏ, đơn giản như điểm tọa độ, màu sắc, hoặc các kiểu dữ liệu nguyên thủy khác.
Class
- Kiểu tham chiếu (Reference Type): Class là kiểu tham chiếu, nghĩa là khi một class được gán cho một biến mới hoặc được truyền như một tham số, chỉ có tham chiếu đến đối tượng...