Что такое действие <string>? - PullRequest
18 голосов
/ 14 мая 2010

Что такое Action<string>, как его можно использовать?

Ответы [ 6 ]

38 голосов
/ 14 мая 2010

Action - это стандартный делегат, имеющий от одного до 4 параметров (16 в .NET 4) и не возвращающий значение. Используется для представления действия.

Action<String> print = (x) => Console.WriteLine(x);

List<String> names = new List<String> { "pierre", "paul", "jacques" };
names.ForEach(print);

Есть другие предопределенные делегаты:

  • Predicate, делегат, имеющий один параметр и возвращающий логическое значение.

    Predicate<int> predicate = ((number) => number > 2);
    var list = new List<int> { 1, 1, 2, 3 };
    var newList = list.FindAll(predicate);
    
  • Func является более общим, он имеет от 1 до 4 параметров (16 в .NET 4) и возвращает что-то

10 голосов
/ 14 мая 2010

Это делегат функции с подписью void Bla(string parameter). Вы можете использовать это для передачи функций другим функциям. Например, вы можете сделать это

Action<string> action = (x => Console.WriteLine(x));
new List<string>{"1","2","3"}.ForEach(action);

для печати всех символов в консоли

6 голосов
/ 14 мая 2010

Это делегат с одним параметром, это строка.

Полезно, потому что это означает, что вам больше не нужно создавать делегаты для действий, если вы можете использовать для них стандартное действие (т. Е. Число параметров фиксировано, значений по умолчанию нет, и вы можете просто использовать существующее действие).

2 голосов
/ 14 мая 2010
public void ValidateInput(string input)
{
   //some code
}

public void test()
{
   Action<string> action = ValidateInput;
}
1 голос
/ 14 мая 2010

Это просто делегат, который не возвращает значение.

Посмотрите здесь: http://msdn.microsoft.com/en-us/library/018hxwa8.aspx

Action<string> будет просто делегатом метода, который за исключением одного строкового параметра и ничего не возвращает.

0 голосов
/ 14 мая 2010

Вот небольшое и простое введение в действие:

http://www.c -sharpcorner.com / UploadFile / rmcochran / anonymousMethods04022006141542PM / anonymousMethods.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...