方法属性是否在C#中继承?

时间:2009-07-14 05:24:04

标签: c# inheritance attributes methods

应用于基类中的抽象方法的属性是否应用于子类中的重写版本?

我希望这个问题很清楚,没有例子。

3 个答案:

答案 0 :(得分:33)

这取决于属性本身的声明方式 - 请参阅AttributeUsageAttribute.Inherited属性。

答案 1 :(得分:17)

这取决于属性。

应用于Attribute类defination的属性,带有一个属性[AttributeUsageAttribute.Inherited],用于确定派生类中是否继承了一个属性。

查看此示例

[global::System.AttributeUsage(AttributeTargets.Method, Inherited = true, 
     AllowMultiple = false)]
public sealed class MyAttribute : Attribute
{

    public MyAttribute (string FieldName)
    {
        //constructor.
    }

}

答案 2 :(得分:9)

您可以通过将AttributeUsage attribute应用于自定义窗口并设置Inherited property(默认为true)来指定。此属性指示您的属性是否可以由从应用了自定义属性的类派生的类继承。

[AttributeUsage( Inherited = false)]
public class CustomAttribute : Attribute
{
}

推荐阅读: