3 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果Inherited = true(默認(rèn)值),則意味著您正在創(chuàng)建的屬性可以被該屬性裝飾的類的子類繼承。
所以-如果您使用[AttributeUsage(Inherited = true)]創(chuàng)建MyUberAttribute
[AttributeUsage (Inherited = True)]
MyUberAttribute : Attribute
{
string _SpecialName;
public string SpecialName
{
get { return _SpecialName; }
set { _SpecialName = value; }
}
}
然后通過裝飾超類來(lái)使用Attribute ...
[MyUberAttribute(SpecialName = "Bob")]
class MySuperClass
{
public void DoInterestingStuf () { ... }
}
如果我們創(chuàng)建MySuperClass的子類,它將具有此屬性...
class MySubClass : MySuperClass
{
...
}
然后實(shí)例化MySubClass的實(shí)例...
MySubClass MySubClassInstance = new MySubClass();
然后測(cè)試是否具有屬性...
MySubClassInstance <---現(xiàn)在具有MyUberAttribute,并將“ Bob”作為SpecialName值。

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊
默認(rèn)情況下啟用屬性繼承。
您可以通過以下方式更改此行為:
[AttributeUsage (Inherited = False)]
- 3 回答
- 0 關(guān)注
- 574 瀏覽
添加回答
舉報(bào)