c#特性

c#特性:

特性(Attribute)是用于在運行時傳遞程序中的各種元素(比如類,方法,結(jié)構(gòu),枚舉,組件等)的行為信息的聲明標簽。可以通過使用特性向程序添加聲明性信息。一個聲明性標簽時通過放置在它它所應(yīng)用的元素前面的方括號來描述的。

特性(Attribute)用于添加元數(shù)據(jù),如編譯器指令和注釋,描述,方法等其他信息。.Net框架提供了兩種類型的特性:預(yù)定義特性和自定義特性。

【一】 介紹

在C#中的有三個重要的名詞:字段,屬性,特性。

字段: 一般變量都是字段。 可以通過Type.GetField("name")獲取

如public string str;

private int num;

屬性: 當使用了屬性訪問器get set的時候,我們稱之為屬性。通過Type.GetProperty("name")獲取

特性:下面我們就來重點說特性。

? 特性是一切繼承自Attribute的類。是一種可由用戶自定義的修飾符。它不能通過new實例化。只能通過附著在類,struct或者變量前面通過 [構(gòu)造函數(shù)] 實例化,如果有參數(shù)的話,就是[構(gòu)造函數(shù)(參數(shù))]。為附著體追加額外的信息。一般來說,特性不能影響程序本身,但它會被編譯器編譯到程序集(Assembly)的元數(shù)據(jù)(Metadata)里,比注釋有更多的作用:

1. 供編譯器使用

2. Unity識別,如導(dǎo)航菜單欄菜單項,自定義Inspector等。

3. 做對程序本身的 功能

【二】特性步驟

得到type

得到函數(shù),字段,屬性等的信息

得到特性

處理

得到type

通過? typeof(類) 或者 對象.GetType(), 或者Assembly.GetType("name")

2.得到函數(shù),字段,屬性等的信息。注意只有public的才能獲取。

字段 FieldInfo通過 type.GetField("num");

屬性 PropertyInfo 通過 type.GetProperties());

方法 MethodInfo 通過 type.GetMethods();

得到特性

Attribute.GetCustomAttributes(mInfo)

4.處理

簡單來講,特性可以為附著體增加額外信息。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、什么是Atrribute ******首先,我們肯定Attribute是一個類,下面是msdn文檔對它的描述:...
    func_老衲姓羅閱讀 2,073評論 0 2
  • 深入淺出Attribute(中)——Attribute本質(zhì)論 2007-06-04 小序: 上篇里,我們把Attr...
    北風(fēng)知我意閱讀 565評論 0 0
  • 什么是Attribute?Attribute是干什么使的?Attribute與Property到底有什么區(qū)...
    北風(fēng)知我意閱讀 338評論 0 0
  • Objective-C是基于C語言加入了面向?qū)ο筇匦院拖⑥D(zhuǎn)發(fā)機制的動態(tài)語言,這意味著它不僅需要一個編譯器,還需要...
    Sam_Lau閱讀 24,909評論 29 219
  • C++特性之引用 本章內(nèi)容:1 引用的不同用例1.1 引用變量1.2 引用數(shù)據(jù)成員1.3 引用參數(shù)1.4 引用作為...
    Haley_2013閱讀 2,252評論 0 49

友情鏈接更多精彩內(nèi)容