Tôi đã rất ngạc nhiên, nhưng enums có thể được tạo ra với hàm tạo trong C#. Ví dụ, tôi có enum:Làm thế nào để ngăn chặn các nhà xây dựng enum
public enum Color
{
White = 1,
Red = 2
}
Sau đó, nó có thể được tạo ra như thế này:
var color = new Color();
Và giá trị sẽ là 0, mà thực sự là không có giá trị enum hợp lệ.
Vì vậy, chúng tôi có thể cấm các nhà thầu enum bằng cách nào đó không? Bất kỳ ý tưởng khác làm thế nào để tránh điều này?
Cảm ơn.
'var color = (Color) 125;' cũng hoàn toàn hợp pháp. Bạn phải tự kiểm tra xem giá trị có hợp lệ khi đọc biến enum hay không ... – Haukinger
Xem https://msdn.microsoft.com/en-us/library/ms182149.aspx Tại sao bạn cần gán giá trị cho một giá trị không cờ enum? – PaulF
0 là mặc định cho bất kỳ loại giá trị nào cho dù đó là hợp lệ hay không và không thể thay đổi. Bạn đang sử dụng enum để làm gì? Có lẽ nếu chúng ta có nhiều ngữ cảnh hơn, chúng ta có thể đề nghị một sự thay thế. – Equalsk