Trong C #, có thể trang trí một loại Enum bằng một thuộc tính hoặc làm một cái gì đó khác để chỉ định giá trị mặc định sẽ là gì, mà không phải thay đổi các giá trị? Các số bắt buộc có thể được đặt trong đá vì bất kỳ lý do gì và sẽ rất hữu ích khi vẫn có quyền kiểm soát mặc định.
enum Orientation
{
None = -1,
North = 0,
East = 1,
South = 2,
West = 3
}
Orientation o; // Is 'North' by default.
int
s trong bản tóm tắt , đơn giản vì chúng tình cờ được thực hiện dưới dạng một kiểu số. Chúng ta có thể thực hiện enums dưới dạng chuỗi và nó sẽ không thay đổi tính hữu dụng của chúng. Tôi coi câu trả lời ở đây là giới hạn về tính biểu cảm của ngôn ngữ C #; giới hạn chắc chắn không phải là cố hữu trong ý tưởng "phân biệt các giá trị với một tập hợp hạn chế".
enum
s như các cấu trúc mức loại, cụ thể là các loại tổng (hoặc xem ở đây . Nghĩa là, coi mỗi enum là một loại riêng biệt, trong đó tất cả các giá trị của loại đó là khác biệt với mọi giá trị của enum khác. Từ một suy nghĩ như vậy, enum không thể chia sẻ bất kỳ giá trị nào , và thực tế, sự trừu tượng này sẽ sụp đổ khi bạn cho rằng mặc định của 0
may hoặc có thể không hợp lệ đối với một enum nhất định, và chỉ đơn giản là bị cắm sừng vào mỗi enum.