Worauf bezieht sich die Inherited
bool-Eigenschaft für Attribute?
Bedeutet dies, dass, wenn ich meine Klasse mit einem Attribut definiere AbcAtribute
(das hat Inherited = true
) und wenn ich eine andere Klasse von dieser Klasse erbe, auf die abgeleitete Klasse auch dasselbe Attribut angewendet wird?
Stellen Sie sich Folgendes vor, um diese Frage anhand eines Codebeispiels zu klären:
[AttributeUsage(AttributeTargets.Class, Inherited = true)]
public class Random: Attribute
{ /* attribute logic here */ }
[Random]
class Mother
{ }
class Child : Mother
{ }
Hat Child
auch das Random
Attribut darauf angewendet?
c#
.net
vb.net
attributes
verschlungenes Elysium
quelle
quelle
Inherited
Eigenschaft ein ausführliches Beispiel, das den Unterschied zwischenInherited=true
undInherited=false
sowohl für eine geerbte Klasse als auch für eineoverride
Methode zeigt.Antworten:
Wenn Inherited = true (dies ist die Standardeinstellung), bedeutet dies, dass das von Ihnen erstellte Attribut von Unterklassen der durch das Attribut dekorierten Klasse geerbt werden kann.
Also - wenn Sie MyUberAttribute mit [AttributeUsage (Inherited = true)] erstellen
Verwenden Sie dann das Attribut, indem Sie eine Superklasse dekorieren ...
Wenn wir eine Unterklasse von MySuperClass erstellen, hat diese dieses Attribut ...
Instanziieren Sie dann eine Instanz von MySubClass ...
Testen Sie dann, ob das Attribut vorhanden ist ...
MySubClassInstance <--- hat jetzt das MyUberAttribute mit "Bob" als SpecialName-Wert.
quelle
Ja, genau das bedeutet es. Attribut
quelle
Die Attributvererbung ist standardmäßig aktiviert.
Sie können dieses Verhalten ändern, indem Sie:
quelle