Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

В езика за програмиране C# делегатите са типове, които представляват препратки към методи с определена сигнатура. Основните типове делегати:

  • Делегати с един изстрел (Single-cast delegates) — сочат към един метод.
  • Мултикаст делегати (Multicast delegates) — могат да съдържат списък от методи, които се извикват последователно.

Освен това съществуват стандартни обобщени делегати:

  • Action — делегат, който представлява метод без стойност за връщане и с 0 или повече параметри.
  • Func<TResult> и Func<T1, TResult> и т.н. — делегати, които връщат стойност и могат да приемат параметри.
  • Predicate<T> — делегат, който приема един параметър и връща bool.

Пример за обявяване и използване на делегат:

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

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

Мултикаст делегат:

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

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

Така основните типове делегати са: с един изстрел, мултикаст, както и стандартните обобщени делегати Action, Func и Predicate.