2010-05-14 16 views

Respuesta

34

Action es un delegado estándar que tiene de uno a 4 parámetros (16 en .NET 4) y no vuelve valor. Se usa para representar una acción.

Action<String> print = (x) => Console.WriteLine(x); 

List<String> names = new List<String> { "pierre", "paul", "jacques" }; 
names.ForEach(print); 

Hay otros delegados predefinidos:

  • Predicate, delegado que tiene un parámetro y devuelve un valor lógico.

    Predicate<int> predicate = ((number) => number > 2); 
    var list = new List<int> { 1, 1, 2, 3 }; 
    var newList = list.FindAll(predicate); 
    
  • Func es el más genérico, que tiene de 1 a 4 parámetros (16) en .NET 4 y devuelve algo

+2

Creo que "1 a 16 parámetros" solo está disponible desde .NET 4. – Patrick

+0

+1 por mencionar Predicado y dar ejemplos – Milan

+0

Gracias, tienes razón Patrick, lo he actualizado. –

6

Es un delegado con un parámetro, esto es una cadena.

utiles porque significa que usted no tiene que crear delegados más para las acciones, siempre y cuando se puede utilizar una acción estándar para ellos (es decir, el número de parámetros es fija, no hay valores por defecto y sólo puede utilizar una acción existente) .

8

Este es un delegado a una función con la firma void Bla(string parameter). Puede usar esto para pasar funciones a otras funciones. Por ejemplo, usted puede hacer esto

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

para imprimir todos los caracteres a la consola

+0

+1 Eras la única persona para ofrecerle un ejemplo significativo. –

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

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