English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Como su nombre indica, un método anónimo es un método sin nombre. Se puede definir un método anónimo en C# utilizando la palabra clave delegate y se puede asignar a una variable de tipo delegate.
En el método anónimo no es necesario especificar el tipo de retorno, se infiere a partir de la declaración del return dentro del cuerpo del método.
public delegate void Print(int value); static void Main(string[] args) { Print print = delegate(int val) { Console.WriteLine("Dentro del método anónimo. Valor: {0}", val); } print(100); }
Dentro del método anónimo. Valor:100
Un método anónimo puede acceder a variables definidas en una función externa.
public delegate void Print(int value); static void Main(string[] args) { int i = 10; Print prnt = delegate(int val) { val += Console.WriteLine("Método anónimo: {0}", val); } prnt(100); }
Método anónimo:110
También se puede pasar un método anónimo a un método que acepta un delegado como parámetro.
En el siguiente ejemplo, PrintHelperMethod() utiliza el primer parámetro de Print delegado:
public delegate void Print(int value); class Program { public static void PrintHelperMethod(Print printDel, int val) { val += 10; printDel(val); } static void Main(string[] args) { PrintHelperMethod(delegate(int val) { Console.WriteLine("Método anónimo: {0}", val); }, 100); } }
Método anónimo:110
saveButton.Click += delegate(Object o, EventArgs e) { System.Windows.Forms.MessageBox.Show("Guardado con éxito!"); }
C#3La versión .0 introdujo expresiones lambda, que funcionan de manera similar a los métodos anónimos.
No puede contener instrucciones de salto, como goto, break o continue.
No puede acceder a parámetros ref o out de métodos externos.
No puede poseer ni acceder a código inseguro.
No se puede usar en el lado izquierdo del operador is.
Se puede definir un método anónimo utilizando la palabra clave delegate
Los métodos anónimos deben asignarse a delegados.
Los métodos anónimos pueden acceder a variables o funciones externas.
Los métodos anónimos pueden pasarse como parámetros.
Los métodos anónimos pueden usarse como manipuladores de eventos.