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>iFunc<T1, TResult>itd. — delegaty zwracające wartość i mogące przyjmować parametry.Predicate<T>— delegat przyjmujący jeden parametr i zwracającybool.
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.