Un método anónimo es un método que no contiene ningún nombre que se introduce en C# 2.0 . Es útil cuando el usuario quiere crear un método en línea y también quiere pasar parámetros en el método anónimo como otros métodos. Un método Anónimo se define usando la palabra clave delegado y el usuario puede asignar este método a una variable del tipo delegado.
Sintaxis:
delegate(parameter_list){ // Code.. };
Ejemplo :
// C# program to illustrate how to // create an anonymous function using System; class GFG { public delegate void petanim(string pet); // Main method static public void Main() { // An anonymous method with one parameter petanim p = delegate(string mypet) { Console.WriteLine("My favorite pet is: {0}", mypet); }; p("Dog"); } }
Producción:
My favorite pet is: Dog
Puntos importantes:
- Este método también se conoce como delegado en línea .
- Con este método, puede crear un objeto delegado sin escribir métodos separados.
- Este método puede acceder a la variable presente en el método externo. Este tipo de variables se conocen como variables externas . Como se muestra en el siguiente ejemplo, fav es la variable externa.
Ejemplo:
// C# program to illustrate how an
// anonymous function access variable
// defined in outer method
using
System;
class
GFG {
// Create a delegate
public
delegate
void
petanim(
string
pet);
// Main method
static
public
void
Main()
{
string
fav =
"Rabbit"
;
// Anonymous method with one parameter
petanim p =
delegate
(
string
mypet)
{
Console.WriteLine(
"My favorite pet is {0}."
,
mypet);
// Accessing variable defined
// outside the anonymous function
Console.WriteLine(
"And I like {0} also."
, fav);
};
p(
"Dog"
);
}
}
Producción:My favorite pet is Dog. And I like Rabbit also.
- Puede pasar este método a otro método que acepte delegado como parámetro. Como se muestra en el siguiente ejemplo:
Ejemplo :
// C# program to illustrate how an
// anonymous method passed as a parameter
using
System;
public
delegate
void
Show(
string
x);
class
GFG {
// identity method with two parameters
public
static
void
identity(Show mypet,
string
color)
{
color =
" Black"
+ color;
mypet(color);
}
// Main method
static
public
void
Main()
{
// Here anonymous method pass as
// a parameter in identity method
identity(
delegate
(
string
color) {
Console.WriteLine(
"The color"
+
" of my dog is {0}"
, color); },
"White"
);
}
}
Producción:The color of my dog is BlackWhite
- En los métodos anónimos, puede eliminar la lista de parámetros, lo que significa que puede convertir un método anónimo en un delegado.
- El bloque de método anónimo significa el alcance de los parámetros en el método anónimo.
- Un método anónimo no contiene sentencias de salto como goto, break o continue.
- Un método anónimo no accede al código no seguro.
- Un método anónimo no accede a los parámetros de entrada, referencia y salida del ámbito externo.
- No puede usar un método anónimo al lado izquierdo del operador is.
- También puede utilizar un método anónimo como controlador de eventos.
Ejemplo:
// C# program to illustrate how an
// anonymous method use as a
// event handler
MyButton.Click +=
delegate
(Object obj, EventArgs ev)
{
System.Windows.Forms.MessageBox.Show(
"Complete without error...!!"
);
}
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA