什么是Action<string>
,如何使用?
答案 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)