What is Action?

前端 未结 6 733
我寻月下人不归
我寻月下人不归 2020-12-15 05:39

What is Action, how can it be used?

相关标签:
6条回答
  • 2020-12-15 06:02

    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

    0 讨论(0)
  • 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).

    0 讨论(0)
  • 2020-12-15 06:07

    here is a small and easy introduction of Action:

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

    0 讨论(0)
  • 2020-12-15 06:08

    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.

    0 讨论(0)
  • 2020-12-15 06:20

    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

    0 讨论(0)
  • 2020-12-15 06:23
    public void ValidateInput(string input)
    {
       //some code
    }
    
    public void test()
    {
       Action<string> action = ValidateInput;
    }
    
    0 讨论(0)
提交回复
热议问题