Enum Week
周日 = 0
周一 = 1
End Enum
Sub Main()
Dim myType As Type = GetType(Week)
MsgBox(Week.GetName(myType, Week.周二))
End Sub
没有办法直接取枚举名,只能根据枚举值,自己赋值
Private Enum duihuaA As Integer
第一个
第二个
第三个
第四个
第五个
第六个
第七个
第八个
调用:
Select case X
case duihuaA.第一个
Return "第一个"
case duihuaA.第二个
Return "第二个"
..............
这个功能实现起来其实也很简单,就是通过反射去读取 DescriptionAttribute 的 Description 属性的值,代码如下所示:
/// summary
/// 返回枚举项的描述信息.
/// /summary
/// param name="value"要获取描述信息的枚举项./param
/// returns枚举想的描述信息./returns
public static string GetDescription(Enum value)
{
Type enumType = value.GetType();
// 获取枚举常数名称.
string name = Enum.GetName(enumType, value);
if (name != null)
// 获取枚举字段.
FieldInfo fieldInfo = enumType.GetField(name);
if (fieldInfo != null)
// 获取描述的属性.
DescriptionAttribute attr = Attribute.GetCustomAttribute(fieldInfo,
typeof(DescriptionAttribute), false) as DescriptionAttribute;
if (attr != null)
return attr.Description;
}
return null;
这段代码还是很容易看懂的,这里取得枚举常数的名称使用的是 Enum.GetName() 而不是 ToString(),因为前者更快,而且对于不是枚举常数的值会返回 null,不用进行额外的反射.
当然,这段代码仅是一个简单的示例,此时此刻呢会进行更详细的分析.
以上就是土嘎嘎小编为大家整理的vb.net枚举的值相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!