匿名方法是指 有方法体 没有方法名的方法,匿名方法也不用指定返回值类型,编译器会根据return 语句推断返回类型。
匿名方法和委托是一起使用的,通过delegate关键字创建委托时声明。
参考代码:
class Program
{
delegate void getStr();//无参数委托
delegate string getStr1(string t);//有参数,有返回值委托
static void Main(string[] args)
{
//普通委托调用
getStr str = new getStr(GetString);
str.Invoke();
//匿名方法调用
getStr str1 = delegate () { Console.WriteLine("匿名方法-GetString输出"); };
str1.Invoke();
//调用带参数方法
getStr1 str11 = delegate (string t) { return t + "-----!"; };
Console.WriteLine(str11.Invoke("匿名方法-传参-GetString输出"));
Console.WriteLine("**********************************");
//定义完委托后可以直接调用(不使用Invoke方法)
str();
str1();
Console.WriteLine(str11("匿名方法-传参-GetString输出"));
}
private static void GetString()
{
Console.WriteLine("普通委托-GetString输出");
}
}
输出结果:
调用委托的时候可以通过委托名称就可以,不是必须通过Invoke方法调用。
匿名方法可以配合委托减少代码量,提高代码整洁度。