Что Action<string>
, как это может использоваться?
Действие
- это стандартный делегат, который имеет от одного до 4 параметров (16 в .NET 4) и не возвращает значения. Он используется для обозначения действия.
Action<String> print = (x) => Console.WriteLine(x);
List<String> names = new List<String> { "pierre", "paul", "jacques" };
names.ForEach(print);
Есть и другие предопределенные делегаты:
Предикат
, делегат, который имеет один параметр и возвращает логическое значение.
Предикат predicate = ((число) => число> 2);
var list = new List {1, 1, 2, 3};
var newList = list.FindAll (предикат);
Func
является более общим, он имеет от 1 до 4 параметров (16 в .NET 4) и возвращает что-то
Это делегат с одним параметром, это строка.
Полезно, потому что это означает, что вам больше не нужно создавать делегатов для действий, если вы можете использовать для них стандартное действие (т.е. количество параметров фиксировано, значений по умолчанию нет, и вы можете просто использовать существующее действие).
public void ValidateInput(string input)
{
//some code
}
public void test()
{
Action<string> action = ValidateInput;
}
Это делегат функции с подписью
void Bla (строковый параметр)
. Вы можете использовать это для передачи функций другим функциям.
Например, вы можете сделать это
Action<string> action = (x => Console.WriteLine(x));
new List<string>{"1","2","3"}.ForEach(action);
, чтобы вывести все символы на консоль
По сути, это просто делегат, который не возвращает значение.
Посмотрите здесь: http://msdn.microsoft.com/en-us/library/018hxwa8.aspx
Action
будет просто делегатом метода, который принимает единственный строковый параметр и ничего не возвращает.