【发布时间】:2010-05-14 12:34:04
【问题描述】:
Action<string>是什么,怎么用?
【问题讨论】:
Action<string>是什么,怎么用?
【问题讨论】:
Action 是一个标准委托,它有 1 到 4 个参数(在 .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 个)并返回一些东西
【讨论】:
这是一个带有签名的函数的委托
void Bla(string parameter)。您可以使用它来将函数传递给其他函数。
例如你可以这样做
Action<string> action = (x => Console.WriteLine(x));
new List<string>{"1","2","3"}.ForEach(action);
将所有字符打印到控制台
【讨论】:
它是一个带一个参数的委托,这是一个字符串。
很有用,因为这意味着您不必再为动作创建委托,只要您可以为它们使用标准动作(即参数数量是固定的,没有默认值,您可以只使用现有动作)。
【讨论】:
public void ValidateInput(string input)
{
//some code
}
public void test()
{
Action<string> action = ValidateInput;
}
【讨论】:
它基本上只是一个不返回值的委托。
看看这里: http://msdn.microsoft.com/en-us/library/018hxwa8.aspx
Action<string> 只是一个方法的委托,该方法除了单个字符串参数并且不返回任何内容。
【讨论】: