Les attributs appliqués à une méthode abstraite dans une classe de base sont-ils appliqués aux versions surchargées dans les classes filles ?
J'espère que la question est suffisamment claire sans exemple.
Les attributs appliqués à une méthode abstraite dans une classe de base sont-ils appliqués aux versions surchargées dans les classes filles ?
J'espère que la question est suffisamment claire sans exemple.
Cela dépend de la manière dont l'attribut lui-même est déclaré - cf. AttributeUsageAttribute.Inherited
propriété.
Cela dépend de l'attribut.
Les attributs appliqués à la définition de la classe Attribute possèdent une propriété [AttributeUsageAttribute.Inherited] qui détermine si un attribut est hérité dans les classes dérivées.
regardez cet échantillon
[global::System.AttributeUsage(AttributeTargets.Method, Inherited = true,
AllowMultiple = false)]
public sealed class MyAttribute : Attribute
{
public MyAttribute (string FieldName)
{
//constructor.
}
}
Vous pouvez le spécifier en appliquant l'option AttributUsage attribut à ceux que vous avez choisis, et en définissant les Propriété héritée (qui est vrai par défaut). Cette propriété indique si votre attribut peut être hérité par les classes qui sont dérivées des classes auxquelles votre attribut personnalisé est appliqué.
[AttributeUsage( Inherited = false)]
public class CustomAttribute : Attribute
{
}
Lecture recommandée :
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.