Nivelul 6 — Elemente generice și delegați
Delegați generici
Note originale de SunDiaL · Vezi sursa în engleză
Desigur, declararea manuală repetată a tipurilor delegat este obositoare și, de fapt, inutilă. Cu instrumentele prezentate până acum, ai nevoie doar de un tip delegat generic bine conceput. Exact asta oferă acum cadrul .NET în mod implicit.
Action
Action este un tip delegat generic care reprezintă o funcție ce returnează void. Acceptă până la aproximativ 8 parametri, specificați prin sintaxa <>.
public void Main()
{
Action<string> log = Console.WriteLine;
log("Hello world");
}
Function<>
Func este la fel ca Action, dar returnează o valoare. Acceptă tot până la aproximativ 8 parametri, plus încă unul pentru rezultatul returnat.
public void Main()
{
Func<int, string> conv = Convert.ToString;
string result = conv(5); //"5"
}
Predicate<>
O formă prescurtată pentru un Func<> care returnează bool. În esență, o condiție.
public bool IsPositive(int x)
{
return x>=0;
}
public void Main()
{
Preticate<int> condition = IsPositive;
condition(5); //true
}