gpt4 book ai didi

vb.net - 如何检查枚举类型

转载 作者:行者123 更新时间:2023-12-03 09:22:00 25 4
gpt4 key购买 nike

我有一个函数可以检查参数中的枚举(我有超过 7 个枚举类型)并返回基于它的图像,但它不起作用。

像这样

       Enum TrophyType
Gold
Silver
Bronze
End Enum
Enum Bla
Bla1
....
End Enum

Public Shared Function InquireForImage(item As [Enum]) As BitmapImage
Dim image As New BitmapImage
Select Case item
case TrophyType.Gold
'return specific image
case TrophyType.Silver
'return image
case Bla.Bla1
'return image

End Select
End Function

如有任何帮助,我们将不胜感激

最佳答案

我建议使用不同的重载:

   Public Shared Function InquireForImage(item As TrophyType) As BitmapImage
Select Case item
Case TrophyType.Gold
Return LoadImage(...)
Case TrophyType.Silver
Return LoadImage(...)
...
End Select
End Function

Public Shared Function InquireForImage(item As Bla) As BitmapImage
Select Case item
Case Bla.bla1
Return LoadImage(...)
...
End Select
End Function

我认为这比尝试确定代码中的枚举类型更干净。在这里,编译器正在为您完成所有工作。确保将所有图像加载逻辑放入单独的 LoadImage 方法中,以便在有多个 InquireForImage 重载时无需重复。


仅供引用:如果您确实需要一个接受多种不同枚举类型的方法,您可以通过使用显式类型检查来区分它们:

Public Function InquireForImage(ByVal item As [Enum]) As String
If TypeOf item Is TrophyType Then
Select Case DirectCast(item, TrophyType)
Case TrophyType.Gold
Return ...
Case TrophyType.Silver
Return ...
...
End Select

ElseIf TypeOf item Is Bla Then
...

End If
End Function

但是,一般来说,应该首选重载(参见上文)。

关于vb.net - 如何检查枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28783723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com