Sobes.tech
Junior — Middle

Môžeš uviesť hlavné typy delegátov používaných v programovacom jazyku?

sobes.tech AI

Odpoveď od AI

V jazyku C# sú delegáti typy, ktoré predstavujú odkazy na metódy s určitým podpisom. Hlavné typy delegátov:

  • Single-cast delegáti — odkazujú na jednu metódu.
  • Multicast delegáti — môžu obsahovať zoznam metód, ktoré sa volajú sekvenčne.

Okrem toho existujú štandardné generické delegáty:

  • Action — delegát, ktorý predstavuje metódu bez návratovej hodnoty a s 0 alebo viac parametrami.
  • Func<TResult> a Func<T1, TResult> a podobne — delegáty, ktoré vracajú hodnotu a môžu prijímať parametre.
  • Predicate<T> — delegát, ktorý prijíma jeden parameter a vracia bool.

Príklad deklarácie a použitia delegáta:

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

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

Multicast delegát:

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

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

Takže hlavné typy delegátov sú: single-cast, multicast, ako aj štandardné generické delegáty Action, Func a Predicate.