Middle
126
questionbank
Какие существуют базовые делегаты в .NET и в чем их отличия?
Answer from AI
sobes.tech AI
В .NET Framework и .NET Core есть несколько базовых встроенных делегатов, которые упрощают объявление типов делегатов для общих сценариев:
Action:
- Представляет метод, который не возвращает значения (void).
- Может принимать от 0 до 16 входных параметров.
// Делегат без параметров и без возвращаемого значения
Action simpleAction = () => Console.WriteLine("Simple Action");
// Делегат с одним параметром
Action<int> printNumber = num => Console.WriteLine(num);
Func:
- Представляет метод, который возвращает значение.
- Может принимать от 0 до 16 входных параметров.
- Последний параметр шаблона указывает тип возвращаемого значения.
// Делегат без параметров с возвращаемым значением int
Func<int> getRandomNumber = () => new Random().Next();
// Делегат с одним параметром int и возвращаемым значением string
Func<int, string> convertToString = num => num.ToString();
Predicate:
- Представляет метод, который принимает один входной параметр и возвращает boolean значение.
- Используется для определения набора критериев.
// Делегат с одним параметром int, возвращающий bool
Predicate<int> isEven = num => num % 2 == 0;