What is Action<string>
, how can it be used?
问题:
回答1:
Action
is a standard delegate that has one to 4 parameters (16 in .NET 4) and doesn't return value. It's used to represent an action.
Action<String> print = (x) => Console.WriteLine(x);
List<String> names = new List<String> { "pierre", "paul", "jacques" };
names.ForEach(print);
There are other predefined delegates :
Predicate
, delegate that has one parameter and returns a boolean.Predicate<int> predicate = ((number) => number > 2); var list = new List<int> { 1, 1, 2, 3 }; var newList = list.FindAll(predicate);
Func
is the more generic one, it has 1 to 4 parameters (16 in .NET 4) and returns something
回答2:
This is a delegate to a function with the signature
void Bla(string parameter)
. You can use this to pass functions to other functions.
For instance you can do this
Action<string> action = (x => Console.WriteLine(x));
new List<string>{"1","2","3"}.ForEach(action);
to print all characters to the console
回答3:
It is a delegate with one parameter, this being a string.
Usefull because it means you do not have to create delegates anymore for actions as long as you can use a standard action for them (i.e. the number of parameters is fixed, no default values and you can just use an existing action).
回答4:
public void ValidateInput(string input)
{
//some code
}
public void test()
{
Action<string> action = ValidateInput;
}
回答5:
It is basically just a delegate that does not return a value.
Have a look here: http://msdn.microsoft.com/en-us/library/018hxwa8.aspx
Action<string>
would just be a delegate of a method that excepted a single string parameter and did not return anything.
回答6:
here is a small and easy introduction of Action:
http://www.c-sharpcorner.com/UploadFile/rmcochran/anonymousMethods04022006141542PM/anonymousMethods.aspx