Atributos — RexDac Academy

RexDac AcademyNotas técnicas · Ayuda tener algunos conocimientos previos
0%Notas publicadas leídas · en este dispositivo

Nivel 7 — Metadatos

Atributos

Notas originales de SunDiaL · Ver fuente en inglés

A veces, la propia clase, función o tipo no basta para describir todo el comportamiento que quieres. Por eso existen los atributos: son metadatos que puedes adjuntar al código. No hacen nada por sí mismos: simplemente describen algo, y otro código —como frameworks, bibliotecas o tus propias herramientas— debe leerlos y reaccionar en consecuencia.

Definir tu propio atributo

Todos los atributos son simplemente clases que heredan de System.Attribute:

public class MyTagAttribute : Attribute
{
	public string Note { get; }
	public MyTagAttribute(string note)
	{
		Note = note;
	}
}

Utilizar un atributo

Un atributo se utiliza aplicándolo a otro elemento. Los elementos a los que puedes aplicarlo son:

[MyTag("Just a test")]
public class MyClass {}

Pero, aunque lo hayas aplicado, sigue sin hacer nada. Para que tenga algún efecto, necesitas código capaz de leer esos atributos y tomar decisiones basándose en ellos. Como los atributos también son código, el resultado es básicamente «código que lee código». Esto se llama reflexión.