這個(gè)功能實(shí)現(xiàn)起來其實(shí)也很簡(jiǎn)單,就是通過反射去讀取 DescriptionAttribute 的 Description 屬性的值,代碼如下所示:
成都創(chuàng)新互聯(lián)是一家成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,提供網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站制作,建網(wǎng)站,按需網(wǎng)站開發(fā),網(wǎng)站開發(fā)公司,公司2013年成立是互聯(lián)行業(yè)建設(shè)者,服務(wù)者。以提升客戶品牌價(jià)值為核心業(yè)務(wù),全程參與項(xiàng)目的網(wǎng)站策劃設(shè)計(jì)制作,前端開發(fā),后臺(tái)程序制作以及后期項(xiàng)目運(yùn)營(yíng)并提出專業(yè)建議和思路。
/// summary
/// 返回枚舉項(xiàng)的描述信息。
/// /summary
/// param name="value"要獲取描述信息的枚舉項(xiàng)。/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(),因?yàn)榍罢吒?,而且?duì)于不是枚舉常數(shù)的值會(huì)返回 null,不用進(jìn)行額外的反射。
當(dāng)然,這段代碼僅是一個(gè)簡(jiǎn)單的示例,接下來會(huì)進(jìn)行更詳細(xì)的分析。
我找到了這樣一段處理方法,希望對(duì)你有所幫助:
枚舉類型如下:
Public Enum ConcertCode
BEIJING
SHANGHAI
GUANGZHOU
End Enum
如果要將比如“beijing”字符串轉(zhuǎn)換為ConcertCode.BEIJING的話,可以通過如下方法:
Dim c As ConcertCode = CType(Enum.Parse(Type.GetType(ConcertCode),字符串的變量,True), ConcertCode)
SQL通常是通過外鍵。
創(chuàng)建一個(gè)狀態(tài)表包含一個(gè)狀態(tài)欄,存儲(chǔ)幾個(gè)固定的狀態(tài)。
然后添加到這個(gè)表的外鍵約束。
ALTER TABLE表名WITH CHECK ADD CONSTRAINT fk_status FOREIGN KEY([狀態(tài)])
[狀態(tài)]([狀態(tài)])