Sobes.tech
Junior — Middle

Poți să numești principalele tipuri de delegați utilizați în limbajul de programare?

sobes.tech AI

Răspuns de la AI

În limbajul C#, delegații sunt tipuri care reprezintă referințe la metode cu o semnătură specifică. Tipurile principale de delegați:

  • Delegați de tip single-cast (Single-cast delegates) — fac referire la o singură metodă.
  • Delegați multicast (Multicast delegates) — pot conține o listă de metode care sunt apelate secvențial.

De asemenea, există delegați generici standard:

  • Action — un delegat care reprezintă o metodă fără valoare de retur și cu 0 sau mai mulți parametri.
  • Func<TResult> și Func<T1, TResult> și alții — delegați care returnează o valoare și pot accepta parametri.
  • Predicate<T> — un delegat care acceptă un parametru și returnează un bool.

Exemplu de declarație și utilizare a unui delegat:

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

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

Delegat multicast:

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

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

Prin urmare, principalele tipuri de delegați sunt: single-cast, multicast, precum și delegați generici standard Action, Func și Predicate.