Использование Action
Также как и Func делегат Action имеет пять перегрузок по сигнатурам, которые позволяют использовать до четырех параметров, но при этом Action не возвращает никаких значений. А самое интересное, что параметром для Action может быть любой тип для любого из параметров в сигнатуре.
public delegate void Action() public delegate void Action<T, >(T arg) public delegate void Action<T1, T2>(T1 arg1, T2 arg2) public delegate void Action<T1, T2, T3>(T1 arg1, T2 arg2, T3 arg3) public delegate void Action<T1, T2, T3, T4>(T1 arg1, T2 arg2, T3 arg3, T4 arg4)
Простой пример использования:
Action showMessage = delegate { Console.WriteLine("Hello!"); }; showMessage();
и через лямбда-выражения:
Action showMessaga2 = () => { Console.WriteLine("Hello world!"); }; showMessaga2();
Теперь посмотрите, как использовать в делегате Action параметры:
Action<string> sm1 = delegate(string m) { Console.WriteLine(m); }; sm1("Wow");
и через лямбда-выражения:
Action<string, string> sm2 = (txt, txt2) => { Console.WriteLine(String.Format("{0} {1}!", txt, txt2)); }; sm2("Привет", "Мир");
Просто всё как! Не правда ли?!
Комментариев нет:
Отправить комментарий