public Color col(string colorName)
成都創(chuàng)新互聯(lián)公司是一家以網(wǎng)站建設(shè)公司、網(wǎng)頁(yè)設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、營(yíng)銷推廣、小程序App開發(fā)等移動(dòng)開發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為會(huì)所設(shè)計(jì)等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。
{
Type colorType = typeof(Color);
PropertyInfo info = colorType.GetProperty(colorName, BindingFlags.Public | BindingFlags.Static);
if (infos == null)
{
//throw Exception
}
return(Color)info.GetValue(null, null);
}
是這個(gè)意思么?輸入“Red”, 返回Color.Red 區(qū)分大小寫
Property用于標(biāo)識(shí)一個(gè)類成員為屬性而不是方法.屬性可以被獲取,屬性在被獲以的時(shí)候利用get句柄返回其值.屬性可以被賦值,這個(gè)過程是由set句柄完成的.這兩個(gè)句柄可以不同時(shí)存在.如果只有g(shù)et而沒有set,那屬性就是只讀的.如果只有set而沒有g(shù)et,那屬性就是只寫的.
就是定義了兩個(gè)屬性:s_name和s_sex
Overridable 表示這個(gè)屬性可以被重載。
提供用來獲取應(yīng)用程序信息(如版本號(hào)、說明、加載的程序集等)的屬性,可以刪掉。
Visual Basic .NET支持動(dòng)態(tài)屬性,其動(dòng)態(tài)屬性儲(chǔ)存在一個(gè)應(yīng)用程序配置文件中,該文件在應(yīng)用程序執(zhí)行時(shí)將會(huì)被讀到。使用動(dòng)態(tài)屬性可以在不重新編譯應(yīng)用程序的情況下改變一些屬性值。你可以使用它們保存數(shù)據(jù)庫(kù)連接字符串、應(yīng)用程序日志信息或者服務(wù)器連接信息。
要看動(dòng)態(tài)屬性的例子,首先在Visual Basic中創(chuàng)建一個(gè)Windows應(yīng)用程序。添加一個(gè)TextBox到默認(rèn)窗體中;確認(rèn)TextBox是被選中的,然后在屬性窗口中定位Dynamic屬性。
點(diǎn)擊Advanced標(biāo)簽旁邊的省略號(hào)按鈕,打開一個(gè)對(duì)話框,該對(duì)話框中列出了TextBox所有的屬性,選擇Text屬性,鍵映射框?qū)?huì)被激活。鍵映射決定了鍵儲(chǔ)存在配置文件中的值。點(diǎn)擊確定關(guān)閉對(duì)話框。
如控件自身無法設(shè)置滾動(dòng)條,那就在父容器控件中(如FORM)使用滾動(dòng)條解決問題。另外,也可將日期控件放在彈出窗口中,
這個(gè)功能實(shí)現(xiàn)起來其實(shí)也很簡(jiǎn)單,就是通過反射去讀取 DescriptionAttribute 的 Description 屬性的值,代碼如下所示:
/// 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ì)的分析。
分享文章:vb.net反射屬性,vb中的屬性
本文地址:http://chinadenli.net/article26/hecccg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、建站公司、網(wǎng)站改版、做網(wǎng)站、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)