Ngoài lý do kỹ thuật, tại sao ... Có nguyên tắc thiết kế tại đây.
chỉ định enum là có bộ nhớ byte là chi tiết triển khai. Sử dụng enum là một vấn đề khác, bạn không cần phải biết hoặc quan tâm đến các chi tiết thực hiện của nó. Trong mã máy khách, thực tế là bạn đang sử dụng enum nên có nghĩa là bạn đang thực sự có nghĩa là sử dụng một enum, không phải là một byte, hoặc dài vv Nếu không thì tại sao không chỉ sử dụng datatype bạn có ý nghĩa.
Rất khó khăn khi bị loại như C# cố gắng làm cho nó khó hơn một chút để bước ra ngoài "hợp đồng" của bạn, điều này thường giúp thiết kế ứng dụng tốt hơn một chút. Bây giờ tất nhiên tôi không nói rằng không có thời gian mà bạn phải tham gia vào các chi tiết thực hiện, một ví dụ tốt là nói một đối tượng ánh xạ quan hệ (ORM), nơi bạn đang ánh xạ một kiểu dữ liệu C# đến một kiểu dữ liệu cơ sở dữ liệu , enums là một ví dụ tốt, nơi bạn phải sau đó biết loại lưu trữ của nó để ánh xạ nó. Nhưng trong những trường hợp này, IMO của nó tốt để phải phát nổ hoặc phản ánh, đó là một lá cờ tốt trong đánh giá rằng ở đây bạn đang đặc biệt bước ra ngoài việc sử dụng thông thường.
Nguồn
2010-04-16 04:30:12
Bạn có trích dẫn cho phần cuối cùng không? – porges
Đối với một biến duy nhất, phần cuối cùng có thể chính xác do đệm. Tuy nhiên, tôi tin rằng nếu bạn có một mảng lớn của một enum với một loại byte cơ bản, nó sẽ giống như có một 'byte []' thay vì một 'int []'. –
Vâng, những gì Jon Skeet nói. Nhưng ai địa ngục sử dụng một loạt các enums? :) – EMP