Sobes.tech
Junior — Middle

Можеш ли да наведеш главне типове делегата који се користе у програмском језику?

sobes.tech АИ

Одговор од АИ

U jeziku C#, delegati su tipovi koji predstavljaju reference na metode sa određenom potpisom. Glavni tipovi delegata:

  • Single-cast delegati — referenciraju na jednu metodu.
  • Multicast delegati — mogu sadržavati listu metoda koje se pozivaju redom.

Pored toga, postoje standardni generički delegati:

  • Action — delegat koji predstavlja metodu bez povratne vrednosti i sa 0 ili više parametara.
  • Func<TResult> i Func<T1, TResult> i slično — delegati koji vraćaju vrednost i mogu primati parametre.
  • Predicate<T> — delegat koji prima jedan parametar i vraća bool.

Primer deklaracije i korišćenja delegata:

public delegate int Operation(int x, int y);

Operation add = (a, b) => a + b;
int result = add(3, 4); // 7

Multicast delegat:

Operation op = add;
op += (a, b) => a * b;

foreach (Operation del in op.GetInvocationList()) {
    Console.WriteLine(del(3, 4));
}

Dakle, glavni tipovi delegata su: single-cast, multicast, kao i standardni generički delegati Action, Func i Predicate.