Delegați generici — RexDac Academy

RexDac AcademyNote tehnice · Ajută să ai câteva noțiuni de bază
0%Note publicate citite · pe acest dispozitiv

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
}