什么是Action <string>?</string>

时间:2010-05-14 12:34:04

标签: c# generics delegates

什么是Action<string>,如何使用?

6 个答案:

答案 0 :(得分:38)

Action是一个标准委托,有一到四个参数(在.NET 4中为16)并且不返回值。它用于表示一个动作。

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个参数(在.NET 4中为16)并返回一些内容

答案 1 :(得分:10)

这是具有签名的函数的委托 void Bla(string parameter)。您可以使用它将函数传递给其他函数。 例如,你可以这样做

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

将所有字符打印到控制台

答案 2 :(得分:6)

它是一个带有一个参数的委托,这是一个字符串。

有用,因为它意味着您不必再为操作创建委托,只要您可以对它们使用标准操作(即参数的数量是固定的,没有默认值,您可以只使用现有操作)。

答案 3 :(得分:2)

public void ValidateInput(string input)
{
   //some code
}

public void test()
{
   Action<string> action = ValidateInput;
}

答案 4 :(得分:1)

它基本上只是一个不返回值的委托。

看看这里: http://msdn.microsoft.com/en-us/library/018hxwa8.aspx

Action<string>只是一个方法的委托,除了单个字符串参数并且没有返回任何内容。

答案 5 :(得分:0)