vb.net - 将未知枚举传递给函数
问题描述
我试图从作为参数传递的未知枚举中获取一个列表,但我不熟悉所涉及的细节。我提取了我正在处理的代码部分(那里有错误,但你会明白的):
Public Shared Function EnumInListOut(someEnum As System.Enum) As List(Of ComboBoxItem)
Dim list As New List(Of ComboBoxItem)
For Each enumItem As Integer In System.Enum.GetValues(TypeOf someEnum)
list.Add(New ComboBoxItem(System.Enum.GetName(someEnum.GetType, enumItem), enumItem))
Next
Return list
End Function
这个想法是我希望这个函数将枚举项的名称和值作为列表返回,但我不知道该怎么做。我可以更改参数,或者任何东西,只要我记住我不知道我会得到哪个枚举。
任何帮助表示赞赏。
解决方案
好吧,如果您需要获取枚举类型的名称和值,那么您可以像下面这样继续
Public Function EnumInListOut(enumType As Type) As IDictionary(Of String, Object)
return [Enum].GetNames( enumType ).ToDictionary( Function(name) name, Function(name) [Enum].Parse( enumType, name ))
End Function
它为您提供了一个字典,其中包含与枚举类型匹配的名称和值
如果您要发送枚举类型的值,则可以更间接地执行此操作,就像这样
Public Function EnumInListOut(Of T)(someEnum As T) As IDictionary(Of String, Object)
Dim enumType as Type = GetType(T)
return [Enum].GetNames( enumType ).ToDictionary( Function(name) name, Function(name) [Enum].Parse( enumType, name ))
End Function
推荐阅读
- r - 对于层次聚类,如何在 R 中的每个聚类中找到“中心”
- c - 如何解决“右手操作数无效”错误?
- excel - 列表框值为空
- python - 如何将 django 中表单的动态字段插入数据库
- python - UnboundLocalError:在 Flask 中赋值之前引用了局部变量“dna”
- java - LWJGL - 循环冻结的原因?
- visual-studio-code - 有没有办法根据当前打开的目录更改 vs 代码设置?
- python - 如何增加猜测次数?
- r - R 中的 getSymbols 已弃用警告消息“indexClass<-”
- c# - 如何向 IdentityServer LogoutRequest 模型添加参数?