attribute特性,可以往程式集中寫入一些元資料。微軟類庫中自帶很多
attribute類,某些時候,需要對類標註一下
attribute。那麼自定義
attribute的用處是什麼的,或者說,什麼時候我們需要自定義
attribute。
在我看來, 自定義attribute沒啥用。常規的專案開發中,我都可以用變通的方式去實現。當然硬是要為了用而用也可以,就是寫一些資訊到程式集中,然後在呼叫的時候在讀取這些資訊。採用反射的技術,但這不是多此一舉影響效能麼,直接把資訊傳給類不更好嗎?
所以不清楚何時何地必須要attribute。下面的例子,就是,用到反射讀取attribute的資訊。
using
system
;using
system.collections.generic
;using
system.linq
;using
system.text
;using
system.dynamic
;
// accessors
public
int bugid
public
string date
public
string programmer
// property for named parameter
public
string comment
}// ********* assign the attributes to the class ********
[bugfixattribute
(121,
"jesse liberty",
"01/03/08")]
[bugfixattribute
(107,
"jesse liberty",
"01/04/08",
comment
="fixed off by one errors")]
public
class mymath
public
double dofunc2
(double param1
)}public
class tester
",mm
.dofunc1(7
));// get the member information and use it to
// retrieve the custom attributes
system.reflection
.memberinfo inf
=typeof
(mymath
);object
attributes
;attributes
= inf
.getcustomattributes
(typeof
(bugfixattribute
), false);
// iterate through the attributes, retrieving the
// properties
foreach
(object attribute
in attributes
)", bfa
.bugid);
console
.writeline
("programmer: ", bfa
.programmer);
console
.writeline
("date: ", bfa
.date);
console
.writeline
("comment: ", bfa
.comment);
}}}}
}
特性(Attribute)的用處
attribute特性,可以往程式集中寫入一些元資料。微軟類庫中自帶很多 attribute類,某些時候,需要對類標註一下 attribute。那麼自定義 attribute的用處是什麼的,或者說,什麼時候我們需要自定義 attribute。在我看來,自定義attribute沒啥用。常規的專案開發中...
Attribute特性使用
特性是用於在執行時傳遞程式中各種元素行為資訊的宣告性標籤加粗樣式,乙個宣告標籤是通過放置在它所應用的元素前的方括號來描述。在.net框架裡提供了兩種型別的特性 預定義特性 自定義特性 attributeusage attributetargets.class,allowmultiple true i...
C 特性Attribute學習
起初一直糾結於如何呼叫特性附著在下面那個成員的值,後來發現不需要呼叫,通過反射載入的時候是自動繫結上去的,即 獲得成員物件之後,有乙個方法可以獲得特性標籤。其實從類庫提供者,和類庫使用者的角度,分開來看就很容易理解了。類庫提供者 myclasslib類 myclasslib類有乙個showstrin...