User defined data types trong C# là structures (cấu trúc) và enumeration (liệt kê).
Structure (Cấu trúc)
Trong C#, structure là kiểu giá trị (value type). Giúp một biến đơn lẻ giữ dữ liệu liên quan của nhiều kiểu dữ liệu. Từ khóa struct dùng để tạo structure.
C# structures có các đặc điểm:
- Có thể có methods, fields, indexers, properties, operator methods, events.
- Có thể có constructor định nghĩa, nhưng không có destructor. Không thể định nghĩa default constructor (tự động tạo, không thể thay đổi).
- Khác class, structure không thể kế thừa structure/class khác.
- Structure không thể làm base cho structure/class khác.
- Structure có thể implement một hoặc nhiều interface.
- Structure members không thể là abstract, virtual, protected.
Enumeration (Liệt kê)
Enum lưu tập hằng số có tên như year, product, month, season, v.v.
Giá trị mặc định Enum bắt đầu từ 0 và tăng dần. Tập hằng cố định, dễ duyệt.
Ví dụ enum:
public enum Vehicle { Car, Bus, Truck }