3 回答
TA贡献1810条经验 获得超4个赞
如果Inherited = true(默认值),则意味着您正在创建的属性可以被该属性装饰的类的子类继承。
所以-如果您使用[AttributeUsage(Inherited = true)]创建MyUberAttribute
[AttributeUsage (Inherited = True)]
MyUberAttribute : Attribute
{
string _SpecialName;
public string SpecialName
{
get { return _SpecialName; }
set { _SpecialName = value; }
}
}
然后通过装饰超类来使用Attribute ...
[MyUberAttribute(SpecialName = "Bob")]
class MySuperClass
{
public void DoInterestingStuf () { ... }
}
如果我们创建MySuperClass的子类,它将具有此属性...
class MySubClass : MySuperClass
{
...
}
然后实例化MySubClass的实例...
MySubClass MySubClassInstance = new MySubClass();
然后测试是否具有属性...
MySubClassInstance <---现在具有MyUberAttribute,并将“ Bob”作为SpecialName值。
- 3 回答
- 0 关注
- 533 浏览
添加回答
举报