学习一下子C#的匿名方法
匿名方法简单的说就是没有名字的方法,而通常情况下的方法定义是需要名字的;
public int sum(int a, int b) //创建方法
{
return a + b; //返回值
}
上面这个方法就是一个常规方法,这个方法需要方法修饰符(public)、返回类型(int)方法名称(sum)和参数列表。
而匿名方法可以看作是一个委托的扩展,是一个没有命名的方法;
匿名方法是一个匿名(没有名称)的方法(如下例的language,真正的方法是后面的CN或EN的语言方法),但是匿名方法可以将方法名作为参数进行传递;
namespace TestFunction
{
//匿名方法,好处可以把符合方法签名的方法做参数传递
public delegate void language(string name);//匿名方法
class Language
{
public void Selectlanguage(string name,language lan)
{
lan(name);
}
}
class Test
{
static void Main(string[] args)
{
Language langwag = new Language();
langwag.Selectlanguage("乔巴",Cn);//选择语言 通过匿名调用Cn方法
langwag.Selectlanguage("乔巴", En);//选择语言 通过匿名调用En方法
}
public static void Cn(string _name)
{
Console.WriteLine("{0},你好!", _name);
}
public static void En(string _name)
{
Console.WriteLine("{0},Holle", _name);
}
}
}
又比如,
delegate int Sum(int a,int b); //声明匿名方法,上述代码声明了一个匿名方法Sum但是没有实现匿名方法的操作的实现
匿名方法最明显的好处就是可以降低常规方法编写时的工作量,另外一个好处就是可以访问调用者的变量,降低传参数的复杂度。
浙公网安备 33010602011771号