Muszę użyć tego wyliczenia w mojej aplikacji C#, ale nie pozwoli mi użyć tych wartości. Kiedy określam typ jako uint, mogę użyć wartości -1, a gdy podam int, nie mogę użyć ostatnich 2 wartości. Czy istnieje sposób, aby użyć niezaznaczonego słowa kluczowego tutaj, aby umożliwić mi zdefiniowanie wszystkich tych wartości? Te wartości pochodzą z zewnętrznego źródła, więc nie mogę ich zmienić.Jak używać niebezpiecznych wartości w wyliczaniu?
internal enum MyValues : int
{
value1 = -1,
value2 = 0,
value3 = 0x80000000,
value4 = 0xFFFFFFFF
}
Korzystanie typ danych 64bit nie jest opcją, używam interop, aby zwrócić wartość 32-bitową. –
Jeśli -1 i 0xFFFFFFFF są technicznie to samo przy użyciu Uint, to chyba mogę po prostu usunąć wartość -1? –
@Jon: -1 nie istnieje, gdy używasz uint - musisz dokonać niezaznaczonej konwersji. –