Sobes.tech
Junior — Middle

Czy możesz wymienić główne typy delegatów używanych w języku programowania?

sobes.tech AI

Odpowiedź od AI

W języku C# delegaty to typy, które reprezentują odwołania do metod o określonej sygnaturze. Główne typy delegatów:

  • Delegaty jednokierunkowe (Single-cast delegates) — odwołują się do jednej metody.
  • Delegaty wielokierunkowe (Multicast delegates) — mogą zawierać listę metod wywoływanych kolejno.

Ponadto istnieją standardowe delegaty generyczne:

  • Action — delegat reprezentujący metodę bez wartości zwrotnej i z 0 lub więcej parametrami.
  • Func<TResult> i Func<T1, TResult> itd. — delegaty zwracające wartość i mogące przyjmować parametry.
  • Predicate<T> — delegat przyjmujący jeden parametr i zwracający bool.

Przykład deklaracji i użycia delegata:

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

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

Delegat wielokierunkowy:

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

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

Zatem główne typy delegatów to: jednokierunkowe, wielokierunkowe, a także standardowe delegaty generyczne Action, Func i Predicate.