Những gì người khác không nói: Với tính năng truyền, bạn thông báo cho trình biên dịch biết bạn đang làm gì. Vì vậy, nếu bạn nói với nó, hãy coi đây là một giá trị enum. Các áp phích khác chỉ ra lý do tại sao điều này vẫn được cho phép, vì trình biên dịch C# không cho phép nhiều điều xấu, ngay cả khi bạn nói bạn biết những gì bạn đang làm.
Sẽ rất tệ nếu giá trị không được phép, vì sau đó bạn không thể lưu giá trị cờ làm int. Hoặc, ai đó đã phải kiểm tra xem int là một trong những kết hợp được phép, có thể rất nhiều nếu bạn sử dụng một enum cờ (với các giá trị có thể được or'ed với nhau).
Có một số tính năng của C# mà tôi muốn làm nhà phát triển Java (LINQ!), Nhưng ở đây Java thực sự đã đúng ... –
@saua: Không nhất thiết. Họ là những lợi thế cho cách tiếp cận này, cũng như bất lợi. –
Ưu điểm chính của điểm này là bạn có thể kết hợp các giá trị mà bạn cũng nên đánh dấu bằng thuộc tính [Flags]. –