¿A qué se refiere la Inherited
propiedad bool sobre atributos?
¿Significa que si defino mi clase con un atributo AbcAtribute
(que tiene Inherited = true
), y si heredo otra clase de esa clase, la clase derivada también tendrá ese mismo atributo aplicado?
Para aclarar esta pregunta con un ejemplo de código, imagina lo siguiente:
[AttributeUsage(AttributeTargets.Class, Inherited = true)]
public class Random: Attribute
{ /* attribute logic here */ }
[Random]
class Mother
{ }
class Child : Mother
{ }
¿ Child
También se le ha Random
aplicado el atributo?
c#
.net
vb.net
attributes
elisio devorado
fuente
fuente
Inherited
propiedad tiene un ejemplo elaborado que muestra la diferencia entreInherited=true
yInherited=false
para una clase heredada y unoverride
método.Respuestas:
Cuando Inherited = true (que es el valor predeterminado) significa que el atributo que está creando puede ser heredado por subclases de la clase decorada por el atributo.
Entonces, si crea MyUberAttribute con [AttributeUsage (Inherited = true)]
Luego usa el atributo decorando una superclase ...
Si creamos una subclase de MySuperClass, tendrá este atributo ...
Luego, cree una instancia de MySubClass ...
Luego prueba para ver si tiene el atributo ...
MySubClassInstance <--- ahora tiene MyUberAttribute con "Bob" como valor SpecialName.
fuente
Sí, eso es precisamente lo que significa. Atributo
fuente
La herencia de atributos está habilitada de forma predeterminada.
Puede cambiar este comportamiento de la siguiente manera:
fuente