À quoi fait Inherited
référence la propriété booléenne sur les attributs?
Cela signifie-t-il que si je définis ma classe avec un attribut AbcAtribute
(qui a Inherited = true
), et si j'hérite d'une autre classe de cette classe, que la classe dérivée aura également le même attribut appliqué?
Pour clarifier cette question avec un exemple de code, imaginez ce qui suit:
[AttributeUsage(AttributeTargets.Class, Inherited = true)]
public class Random: Attribute
{ /* attribute logic here */ }
[Random]
class Mother
{ }
class Child : Mother
{ }
L' attribut Child
lui est- il également Random
appliqué?
c#
.net
vb.net
attributes
dévoré d'elysium
la source
la source
Inherited
propriété a un exemple élaboré qui montre la différence entreInherited=true
etInherited=false
pour une classe héritée et uneoverride
méthode.Réponses:
Lorsque Inherited = true (qui est la valeur par défaut), cela signifie que l'attribut que vous créez peut être hérité par des sous-classes de la classe décorée par l'attribut.
Donc, si vous créez MyUberAttribute avec [AttributeUsage (Inherited = true)]
Ensuite, utilisez l'attribut en décorant une super-classe ...
Si nous créons une sous-classe de MySuperClass, elle aura cet attribut ...
Puis instanciez une instance de MySubClass ...
Ensuite, testez pour voir s'il a l'attribut ...
MySubClassInstance <--- a maintenant MyUberAttribute avec "Bob" comme valeur SpecialName.
la source
Oui, c'est précisément ce que cela signifie. Attribut
la source
L'héritage d'attribut est activé par défaut.
Vous pouvez modifier ce comportement en:
la source