十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Enum Week
为乌兰等地区用户提供了全套网页设计制作服务,及乌兰网站建设行业解决方案。主营业务为成都做网站、成都网站建设、乌兰网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
周日 = 0
周一 = 1
周二 = 2
周三 = 3
周四 = 4
周五 = 5
周六 = 6
End Enum
Sub Main()
Dim myType As Type = GetType(Week)
MsgBox(Week.GetName(myType, Week.周二))
End Sub
这个功能实现起来其实也很简单,就是通过反射去读取 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,不用进行额外的反射。
当然,这段代码仅是一个简单的示例,接下来会进行更详细的分析。
为什么增加的回答这么久还没显示。
我想知道你为什么要枚举这些方法,是需要打印出来还是只是为了查看和调用?
1,如果只是为了查看和调用的话,不需要用代码就能知道了。
打开VS,视图-》对象浏览器。然后开了后,点浏览右边的“。。。”,开了后。选COM活页,再在里面选ThunderAgent 1.0 Type Library。再点添加。
添加好之后。在左边的浏览窗口内就有了,展开THUNDERAGENTLib下面有几个类和接口,展开类就有方法了。
2,如果是需要用代码枚举并打印。网上有相关的代码,C#写的。我就不帖了。自己搜一下。改成vb.net相信应该不会太难。
祝你好运。
没有办法直接取枚举名,只能根据枚举值,自己赋值
Private Enum duihuaA As Integer
第一个
第二个
第三个
第四个
第五个
第六个
第七个
第八个
End Enum
调用:
Select case X
case duihuaA.第一个
Return "第一个"
case duihuaA.第二个
Return "第二个"
..............
这个貌似是属性语法错了吧……
应该这样写,绝对不会有问题
Property ReadMonth
Get
Return ……
End Get
Set(value As Month)
…… = value
End Set
End Property
Property ... (... As ...)这么写是错的