我的项目经理要求我从我们的解决方案中删除所有"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发布于 2013-02-13 00:26:18
根据MSDN的说法,它是一个常量数组,所以它将是一个可以强制转换为整数的对象数组。
FWIW我有一些代码做类似的工作,它拾取存储在每个枚举值的属性。为此,我使用了GetNames,然后反射回支持枚举字段,我可以在其中搜索存储各种元数据的自定义属性,如"DisplayName“等。然后可以使用[Enum].Parse()重新构造枚举。
希望这能有所帮助!此外,我认为因为你的经理不信任语言/开发人员而不得不更改所有代码是一个愚蠢的想法!
发布于 2013-02-13 00:21:25
GetValues的返回类型是一个对象数组。因此,For Each循环中"item“变量的类型将是Object。
希望这能有所帮助。
https://stackoverflow.com/questions/14836864
复制相似问题