Are Method Attributes Inherited in C#?

后端 未结 3 1247
闹比i
闹比i 2021-01-01 09:58

Are attributes applied to an abstract method in a base class applied to the overridden versions in the child classes?

I hope the question is clear enough without an

相关标签:
3条回答
  • 2021-01-01 10:36

    It depends on the Attribute.

    attributes applied to Attribute class defination, carry a property [AttributeUsageAttribute.Inherited] that determines if an attributed is inherited in the derived classes.

    check out this sample

    [global::System.AttributeUsage(AttributeTargets.Method, Inherited = true, 
         AllowMultiple = false)]
    public sealed class MyAttribute : Attribute
    {
    
        public MyAttribute (string FieldName)
        {
            //constructor.
        }
    
    }
    
    0 讨论(0)
  • 2021-01-01 10:38

    It depends on how the attribute itself is declared - see AttributeUsageAttribute.Inherited property.

    0 讨论(0)
  • 2021-01-01 10:43

    You can specify that by applying the AttributeUsage attribute to your custom ones, and setting the Inherited property (which is true by default). This property indicates if your attribute can be inherited by classes that are derived from the classes that have your custom attribute applied.

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

    Recommended read:

    • Writing Custom Attributes
    0 讨论(0)
提交回复
热议问题