Enum
alan bir işlev yazıyor ve uint
'a atıyor. int
'a gönderirken gördüğüm kadarıyla, önce bir nesneye göndermeniz gerekir: (int) (object) myEnumValue
. (int) myEnumValue
yazarsanız bir derleme süresi istisnası alırsınız.Döküm Enum to uint
Şimdi, uyandırmaya çalıştığımda, (uint) (object) myEnumValue
'un iyi olacağını tahmin ediyordum. Güzelce derler, ancak çalıştırıldığında, bir InvalidCastException
üretir. Bu yüzden işe gitmek için, ben de en komik görünüyor düşünüyorum, bu yüzden oldukça mutluyum ama neden böyledir
(uint) (int) (object) myEnumValue
kullandım?
Belki deuint
için
object
döküm mümkün değildir neden sormak daha doğru olurdu, ancak bir
Enum
uint
ila gitmek için başka bir yol olup olmadığını ilgileniyorum. Var mı?
Düzenleme:
bağlam bir işlev, böyle bir şey olur:
public static uint ToUInt (Enum e)
{
return (uint) (int) (object) e;
}
Düzenleme 2:
iyi çözüm thecoop bahsettiği gibi:
Convert.ToUInt32(e)
Tamam, Enum'umu Enum: uint olarak belirtirsem, başka bir yol olurdu? –
@Jonatan: evet, bu enum'u uint olarak kutlayacak ve unbox'ı uint olarak zorlayacaksınız. –
Bu doğru: (uint) e iyi olacak, ama (int) e patlayacak. –