从值获取VB.net枚举说明

多佛

如何Enum从其值获得描述?

我可以使用以下名称获得描述:

Public Shared Function GetEnumDescription(ByVal EnumConstant As [Enum]) As String
    Dim fi As FieldInfo = EnumConstant.GetType().GetField(EnumConstant.ToString())
    Dim attr() As DescriptionAttribute = _ 
                  DirectCast(fi.GetCustomAttributes(GetType(DescriptionAttribute), _
                  False), DescriptionAttribute())

    If attr.Length > 0 Then
        Return attr(0).Description
    Else
        Return EnumConstant.ToString()
    End If
End Function 

但是我不知道如何将变量名传递给该函数。我尝试过类似的事情

GetEnumDescription([Enum].GetName(GetType(myEnum), 2)))

但我尝试过的一切都不对。

Heinzi

如果您有枚举类型的变量,则只需

GetEnumDescription(myEnum)

最小的工作示例:

Enum TestEnum
    <Description("Description of Value1")>
    Value1
End Enum

Public Sub Main()
    Dim myEnum As TestEnum = TestEnum.Value1
    Console.WriteLine(GetEnumDescription(myEnum)) ' prints "Description of Value1"
    Console.ReadLine()
End Sub

如果您有一个Integer变量,则需要先将其强制转换为枚举类型(CType同样适用):

GetEnumDescription(DirectCast(myEnumValue, TestEnum))

工作示例:

Enum TestEnum
    <Description("Description of Value1")>
    Value1 = 1
End Enum

Public Sub Main()
    Console.WriteLine(GetEnumDescription(DirectCast(1, TestEnum)))
    Console.ReadLine()
End Sub

造成混淆的原因似乎是一种误解:您的方法没有将枚举的“名称”作为参数,而是将了Enum作为参数。那是不同的,这也是您尝试使用GetName失败的原因

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取特定div vb.net的值

来自分类Dev

VB.NET从My.Settings获取默认值

来自分类Dev

从VB.NET中的存储过程获取返回值

来自分类Dev

在VB.NET中获取CheckBoxList的所有选定值

来自分类Dev

ASP.NET无法从LinkButton onClick(VB)获取CommandArgument值

来自分类Dev

vb.net使用htmlagilitypack获取所有属性值

来自分类Dev

在vb.net中获取JSON对象的值

来自分类Dev

如何使用VB.NET在JSON的值中获取值

来自分类Dev

如何使用VB.NET从XML获取属性值?

来自分类Dev

VB.NET WPF如何从datagrid获取列值?

来自分类Dev

如何从VB.NET枚举中获取描述?

来自分类Dev

在vb.net中,设置带有文本值的下拉列表后,如何获取所选值

来自分类Dev

如何从ASP.NET MVC属性获取枚举值?

来自分类Dev

获取枚举字符值

来自分类Dev

从值获取枚举实例

来自分类Dev

获取枚举字符值

来自分类Dev

C#/ VB.Net-枚举路径

来自分类Dev

枚举组合 - vb.net

来自分类Dev

vb.net获取数组的第一行和最后一行的“值”

来自分类Dev

如何在VB.net中获取字符串的ASCII值

来自分类Dev

如何从VB.Net中的DataGridView获取单元格值?

来自分类Dev

在VB.Net中获取ListView的特定列中所有值的总和

来自分类Dev

使用多选择vb.net获取DataGridView中一列的值

来自分类Dev

如何在VB.net中获取JSON数组或对象的值?

来自分类Dev

如何使用WebRequest从VB.net中的网页获取specif标签的值

来自分类Dev

在vb.net中使用RegEx从字符串获取值双精度值

来自分类Dev

SQL获取具有值VB.net的所有行

来自分类Dev

如何使用vb.net和mysql获取最大值

来自分类Dev

如何在vb.net中获取表单活动状态的值