大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
'调用类System.Enum的
创新互联是一家专注于成都网站建设、网站建设与策划设计,蒲县网站建设哪家好?创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:蒲县等地区。蒲县做网站价格咨询:18982081108
'Public Shared Function GetNames(enumType As Type) As String()
'方法,就可以获取指定枚举类型的所有常数名称
'下面有一个例子
Option Explicit On
Option Strict On
Imports System
Enum Color
Red
Green
Blue
Black
End Enum
Module Program
Sub Main()
For Each en As String In System.Enum.GetNames(GetType(Color))
Console.WriteLine(en)
Next
Console.Write("Press any key to continue . . . ")
Console.ReadKey(True)
End Sub
End Module
没有办法直接取枚举名,只能根据枚举值,自己赋值
Private Enum duihuaA As Integer
第一个
第二个
第三个
第四个
第五个
第六个
第七个
第八个
End Enum
调用:
Select case X
case duihuaA.第一个
Return "第一个"
case duihuaA.第二个
Return "第二个"
..............
我找到了这样一段处理方法,希望对你有所帮助:
枚举类型如下:
Public Enum ConcertCode
BEIJING
SHANGHAI
GUANGZHOU
End Enum
如果要将比如“beijing”字符串转换为ConcertCode.BEIJING的话,可以通过如下方法:
Dim c As ConcertCode = CType(Enum.Parse(Type.GetType(ConcertCode),字符串的变量,True), ConcertCode)
这个功能实现起来其实也很简单,就是通过反射去读取 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,不用进行额外的反射。
当然,这段代码仅是一个简单的示例,接下来会进行更详细的分析。
这个貌似是属性语法错了吧……
应该这样写,绝对不会有问题
Property ReadMonth
Get
Return ……
End Get
Set(value As Month)
…… = value
End Set
End Property
Property ... (... As ...)这么写是错的