Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csOpDeAf 131 of 163 menu
◀ ▶

Собственный и готовый тип в C#

В основном курсе для лямбд уже использовали Action и Func. Это тоже делегаты, только с заранее заданным именем и списком типов в угловых скобках.

Собственный delegate удобен, когда одну и ту же сигнатуру передают во многих местах и хотят короткое имя типа, например Notify. Запишем оба варианта для одного метода:

void Print(string text) { Console.WriteLine(text); } Notify custom = Print; Action<string> ready = Print; custom("a"); ready("b"); delegate void Notify(string text);

Для метода с результатом Func перечисляет типы параметров и последним - тип возвращаемого значения. Сравним с именованным делегатом:

int DoubleValue(int n) { return n * 2; } Twice custom = DoubleValue; Func<int, int> ready = DoubleValue; Console.WriteLine(custom(3)); Console.WriteLine(ready(3)); delegate int Twice(int n);

Придумайте тип HasText для проверки строки и метод, который возвращает true, если длина строки больше нуля. Сохраните один и тот же метод в HasText и в готовом типе с одной строкой и результатом bool. Выведите оба результата для "x".

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить