vb.net枚举类 vb枚举法

vb.net里如何把字符串转换为枚举类型?

我找到了这样一段处理方法,希望对你有所帮助:

创新互联专注于企业营销型网站建设、网站重做改版、夏邑网站定制设计、自适应品牌网站建设、HTML5建站商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为夏邑等各大城市提供网站开发制作服务。

枚举类型如下:

Public Enum ConcertCode

BEIJING

SHANGHAI

GUANGZHOU

End Enum

如果要将比如“beijing”字符串转换为ConcertCode.BEIJING的话,可以通过如下方法:

Dim c As ConcertCode = CType(Enum.Parse(Type.GetType(ConcertCode),字符串的变量,True), ConcertCode)

如何获得某个类中所有枚举类型的名称 vb.net

'调用类System.Enum的

'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

VB.NET的枚举求教解决方法

这个功能实现起来其实也很简单,就是通过反射去读取 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枚举类 vb枚举法
标题URL:http://scyanting.com/article/hjegeh.html