VB.NET'te, Option Strict
ile bile, Enum'u bir Tamsayı olarak geçirebilirsiniz. olmadan (Belirli bir Tamsayı'nın belirli bir Enum içinde nasıl belirlenir?
Public Enum Animals
Monkey = 1
Giraffe = 2
Leopard = 3
Elephant = 4
End Enum
Fakat bir değer ayarlayabilirsiniz böylece bir tamsayı olarak etrafında geçiyoruz -1 "hiçbir hayvan" olarak: benim özel durumda
, birisi buna benzer bir enum kullanıyor Enum kendisi), yani içinde "Hayır hayvanı" dahil etmek zorunda: bir Hayvanlar tekrar yazmanız olmak içinPublic Sub MakeAnimalJump(animalType As Int32)
If animalType < 1 Then
' Clearly not an animal...
Else
' Make that animal jump...
End If
End Sub
Ancak daha sonra, onlar soruyorsun. Benim sorumum, Enum'u "Yok" değerini içerecek şekilde değiştirmenin veya b) Enum'daki [Enum].GetValues(...)
'u kullanarak her bir değerde dolaşmayı değiştirmenin yanı sıra, belirli bir Tamsayı'nın enum'daki bir değerin eşleşip eşleşmediğini anlamak için kolay bir yoldur. ya da değil?
Bir [Numaralandırma] .TryParse falan olabilir orada umuyordum, ama var gibi görünmüyor.
DÜZENLEME: Bazılarınızın önerdiği gibi, .NET 4. Enum.TryParse var. Ne yazık ki, söz konusu projenin hala Windows Server 2000'i desteklemesi gerekir, bu yüzden en son .NET Framework'ü kullanamıyoruz (umarız Yakında Windows Server 2000 desteğini bırakabileceğiz ..!).
Enum.TryParse() http://msdn.microsoft.com/en-us/library/ee835389.aspx – jrummell