Attribute 學習筆記

2022-05-08 07:51:08 字數 1203 閱讀 7623

一、attribute 是為目標元素新增附加資訊的一種描述宣告,在執行的時候通過反射的方式來獲取附加的資訊。

二、使用attributeusage來定義自定義attribute的屬性,attributeusage本身也是乙個attribute,這是專門施加在attribute類的attribute. attributeusage自然也是從attribute派生,它有乙個帶引數的構造器,這個引數是attributetargets的列舉型別。下面是attributetargets 的定義:

public enum attributetargets

作為引數的attributetarges的值允許通過「或」操作來進行多個值得組合,如果你沒有指定引數,那麼預設引數就是all 。 attributeusage除了繼承attribute 的方法和屬性之外,還定義了以下三個屬性:

allowmultiple: 讀取或者設定這個屬性,表示是否可以對乙個程式元素施加多個attribute 。

inherited:讀取或者設定這個屬性,表示是否施加的attribute 可以被派生類繼承或者過載。

validon: 讀取或者設定這個屬性,指明attribute 可以被施加的元素的型別

三、定製的資訊是通過反射來獲取的,獲取某物件所附加attribute 的方法由attribute類提供:

attribute 類的細節:

protected attribute(): 保護的構造器,只能被attribute的派生類呼叫。

三個靜態方法:

static attribute getcustomattribute():這個方法有8種過載的版本,它被用來取出施加在類成員上指定型別的attribute。

static attribute getcustomattributes(): 這個方法有16種過載版本,用來取出施加在類成員上指定型別的attribute陣列。

static bool isdefined():由八種過載版本,看是否指定型別的定製attribute被施加到類的成員上面。

例項方法:

bool isdefaultattribute(): 如果attribute的值是預設的值,那麼返回true。

bool match():表明這個attribute例項是否等於乙個指定的物件。

公共屬性: typeid: 得到乙個唯一的標識,這個標識被用來區分同乙個attribute的不同例項。

五、

C 學習筆記 Attribute

學習參考 今天在討論ipc通訊契約的時候,盧工提到使用attribute來描述具體的介面方法的命令資訊。發現對 attribute的概念還不是很熟悉,因此對其進行學習梳理。1 attribute是什麼?它有什麼用?先來看看官方的定義 msdn文件對它的描述 公共語言執行時允許新增類似關鍵字的描述宣告...

STM32學習筆記之 attribute

stm32也會遇到這樣的絕對定位的問題如下 uint8 t uart rx buf 1024 attribute at 0x20001000 就是將串列埠接收的資料定位到ram中起始位址為0x20001000 絕對定位要麼定位到flash 要麼定位到ram,這裡我們將定位在flash進行說明。mdk...

讀書筆記 attribute

1 32位系統最大支援4gb記憶體 3 讀書筆記 4 attribute packed 和 attribute aligned n 32位系統最大支援4gb記憶體 指標的值 虛擬位址值 使用乙個機器字的大小來儲存。也就是說,對於乙個機器字為w位的電腦而言,它的虛擬位址空間是0 2w 1 程式最多能訪...