繁体   English   中英

VB.NET,INFER ON和Enum.GetValues

[英]VB.NET, INFER ON and Enum.GetValues

我的项目经理指控我从我们的解决方案中删除所有“Option Infer On”指令(在他看来,为了没有未定义的类型)。

Dim enums = [Enum].GetValues(enumType) ' here I will use "As Array" 

For Each item In enums ' <================== WHAT TYPE TO USE HERE?
  Dim ienum As [Enum] = CType(item, [Enum])

  Dim name As String
  Dim caption As String

  name = ienum.GetPropertyName
  caption = ienum.GetStringValue

  myDict.Add(caption, name)
Next item

GetValues的返回类型是一个对象数组。 因此For Each循环中“item”变量的类型将是Object。

希望有所帮助。

根据MSDN,它是一个常量数组,因此它将是一个可以转换为Integer的对象数组。

FWIW我有一些代码可以完成类似的工作,它会根据每个Enum值获取存储的属性。 为此,我使用了GetNames ,然后反映回支持Enum字段,我可以搜索自定义属性,存储各种元数据,如“DisplayName”等。然后可以使用[Enum].Parse()重新构建[Enum].Parse()

希望有所帮助! 此外,我认为必须更改所有代码是一个愚蠢的想法,因为您的经理不相信语言/开发人员!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM