0

我的项目经理要求我从我们的解决方案中删除所有“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
4

2 回答 2

1

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

希望有帮助。

于 2013-02-12T16:21:25.157 回答
1

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

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

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

于 2013-02-12T16:26:17.957 回答