Tôi cần phải sử dụng enum này trong ứng dụng C# của tôi, nhưng nó sẽ không cho phép tôi sử dụng các giá trị này. Khi tôi chỉ định kiểu như uint, tôi có thể sử dụng giá trị -1 và khi tôi chỉ định int, tôi không thể sử dụng 2 giá trị cuối cùng. Có cách nào để sử dụng từ khóa không được kiểm tra ở đây để cho phép tôi xác định tất cả các giá trị này không? Những giá trị này đến từ một nguồn bên ngoài, vì vậy tôi không thể thay đổi chúng.Làm cách nào để sử dụng các giá trị không an toàn trong enum?
internal enum MyValues : int
{
value1 = -1,
value2 = 0,
value3 = 0x80000000,
value4 = 0xFFFFFFFF
}
Sử dụng một kiểu dữ liệu 64bit không phải là một lựa chọn, tôi đang sử dụng interop để trả về một giá trị 32 bit. –
Nếu -1 và 0xFFFFFFFF về mặt kỹ thuật là giống nhau khi sử dụng một uint, tôi đoán tôi chỉ có thể loại bỏ giá trị -1? –
@Jon: -1 không tồn tại khi bạn đang sử dụng uint - bạn phải thực hiện chuyển đổi không được kiểm tra. –