首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VB.NET、INFER ON和Enum.GetValues

VB.NET、INFER ON和Enum.GetValues
EN

Stack Overflow用户
提问于 2013-02-13 00:16:03
回答 2查看 322关注 0票数 0

我的项目经理要求我从我们的解决方案中删除所有"Option Infer On“指令(在他看来,这是为了不使用未定义的类型)。

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-13 00:26:18

根据MSDN的说法,它是一个常量数组,所以它将是一个可以强制转换为整数的对象数组。

FWIW我有一些代码做类似的工作,它拾取存储在每个枚举值的属性。为此,我使用了GetNames,然后反射回支持枚举字段,我可以在其中搜索存储各种元数据的自定义属性,如"DisplayName“等。然后可以使用[Enum].Parse()重新构造枚举。

希望这能有所帮助!此外,我认为因为你的经理不信任语言/开发人员而不得不更改所有代码是一个愚蠢的想法!

票数 1
EN

Stack Overflow用户

发布于 2013-02-13 00:21:25

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

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14836864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档