Enum Week
為烏蘭等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及烏蘭網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站建設(shè)、烏蘭網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
周日 = 0
周一 = 1
周二 = 2
周三 = 3
周四 = 4
周五 = 5
周六 = 6
End Enum
Sub Main()
Dim myType As Type = GetType(Week)
MsgBox(Week.GetName(myType, Week.周二))
End Sub
這個功能實現(xiàn)起來其實也很簡單,就是通過反射去讀取 DescriptionAttribute 的 Description 屬性的值,代碼如下所示:
/// summary
/// 返回枚舉項的描述信息。
/// /summary
/// param name="value"要獲取描述信息的枚舉項。/param
/// returns枚舉想的描述信息。/returns
public static string GetDescription(Enum value)
{
Type enumType = value.GetType();
// 獲取枚舉常數(shù)名稱。
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;
}
這段代碼還是很容易看懂的,這里取得枚舉常數(shù)的名稱使用的是 Enum.GetName() 而不是 ToString(),因為前者更快,而且對于不是枚舉常數(shù)的值會返回 null,不用進行額外的反射。
當然,這段代碼僅是一個簡單的示例,接下來會進行更詳細的分析。
為什么增加的回答這么久還沒顯示。
我想知道你為什么要枚舉這些方法,是需要打印出來還是只是為了查看和調(diào)用?
1,如果只是為了查看和調(diào)用的話,不需要用代碼就能知道了。
打開VS,視圖-》對象瀏覽器。然后開了后,點瀏覽右邊的“。。?!?,開了后。選COM活頁,再在里面選ThunderAgent 1.0 Type Library。再點添加。
添加好之后。在左邊的瀏覽窗口內(nèi)就有了,展開THUNDERAGENTLib下面有幾個類和接口,展開類就有方法了。
2,如果是需要用代碼枚舉并打印。網(wǎng)上有相關(guān)的代碼,C#寫的。我就不帖了。自己搜一下。改成vb.net相信應(yīng)該不會太難。
祝你好運。
沒有辦法直接取枚舉名,只能根據(jù)枚舉值,自己賦值
Private Enum duihuaA As Integer
第一個
第二個
第三個
第四個
第五個
第六個
第七個
第八個
End Enum
調(diào)用:
Select case X
case duihuaA.第一個
Return "第一個"
case duihuaA.第二個
Return "第二個"
..............
這個貌似是屬性語法錯了吧……
應(yīng)該這樣寫,絕對不會有問題
Property ReadMonth
Get
Return ……
End Get
Set(value As Month)
…… = value
End Set
End Property
Property ... (... As ...)這么寫是錯的