Nivelul 7 — Metadate
Atribute
Note originale de SunDiaL · Vezi sursa în engleză
Uneori, clasa, funcția sau tipul în sine nu este suficient pentru a descrie întregul comportament dorit. De aceea există atributele: metadate pe care le poți atașa codului. Singure nu fac nimic, ci doar descriu ceva. Alt cod (din cadre software, biblioteci sau instrumentele tale) trebuie să le citească și să reacționeze în consecință.
Definirea propriului atribut
Toate atributele sunt clase care moștenesc System.Attribute:
public class MyTagAttribute : Attribute
{
public string Note { get; }
public MyTagAttribute(string note)
{
Note = note;
}
}
Folosirea unui atribut
Folosești un atribut aplicându-l altui element. Îl poți aplica la:
- clase;
- structuri;
- metode;
- proprietăți;
- parametri;
- chiar și ansambluri.
[MyTag("Just a test")]
public class MyClass {}
Dar simpla aplicare nu produce niciun efect. Pentru a avea un efect, este nevoie de cod care să citească atributele și să ia decizii pe baza lor. Deoarece și atributele sunt cod, ajungi practic la „cod care citește cod”. Acest mecanism se numește reflecție.