理解C# Attribute

Andy Niu發表於2014-01-14

1、Attribute與Property

  Attribute是特性,Property是屬性。

2、Attribute與註釋

  註釋:是給程式設計師看的,編譯的時候會去掉這些資訊,也就是說,程式集中沒有註釋的內容。

  Attribute:會被編譯到程式集中,在程式集的後設資料中,在載入程式集的時候,可以從它的後設資料中提取出這些資訊。

3、說了那麼多,考慮下,它解決什麼問題?

  考慮下面的需求,一個工具類提供了很多靜態方法,甲乙兩個程式設計師合作完成,理所當然,應該標識出哪些是甲寫的,哪些是乙寫的,用於統計。最笨的加註釋,但是它有兩個問題:a、編譯後生成的程式集中,沒有了這些註釋內容;b、只能通過人工去統計甲乙完成的方法,有沒有辦法通過程式自動化統計呢?

4、使用Attribute,對原始碼打上標記,這些標記生成在程式集中,做個小工具去統計甲乙完成的方法。

5、特別注意:表面上,Attribute和public,static一樣,像個修飾符。實際上,Attribute不是修飾符,而是一個特殊的類,這個類例項化,然後附著在目標物件上。

相關文章