基础理论:
匿名方法:通过匿名委托 、lamada表达式定义的函数具体操作并复制给委托类型; 匿名委托:委托的一种简单化声明方式通过delegate关键字声明; 内置泛型委托:系统已经内置的委托类型主要是不带返回值的Action<T1,,,,Tn>和带返回值的Func<T1,,,Tn,Tresult>
实例代码:
using System; namespace Gxy.Study { /// <summary> /// 代码版本SDK .NET Core 2.1 /// </summary> class DemoTest { /// <summary> /// 定义函数单条语句直接用lamada表达式 /// </summary> /// <param name="x"></param> public void Fun1(string x) => Console.WriteLine("输出参数:{0}", x); /// <summary> /// 使用内置泛型委托action(返回值为void) 定义委托类型成员变量,并通过那lamada定义匿名函数 /// </summary> public Action<string> Fun2 = x => Console.WriteLine("输出参数:{0}", x); /// <summary> /// 使用内置泛型委托action(返回值为void) 定义委托类型成员变量, /// 并通过匿名委托定义匿名函数 /// </summary> public Action<string> Fun3 = delegate (string s) { Console.WriteLine("输出参数:{0}", s); }; /// <summary> /// 定义委托类型 /// </summary> /// <param name="x"></param> /// <returns></returns> public delegate string Fun4(string x); /// <summary> /// 使用匿名函数声明委托 /// </summary> public readonly Fun4 Fun5 = delegate (string x) { return "输出参数:" + x; }; /// <summary> /// 使用内置泛型委托func(返回值不可以为void,参数列表中最后一个时返回值), /// 定义委托类型成员变量,并通过lamada定义单含带返回值的匿名函数 /// 单行表达式的返回值就是此匿名函数的返回值 /// </summary> public Func<int, string> Funcc = x => string.Format("输出参数:{0}", x); /// <summary> /// 使用内置泛型委托func(返回值不可以为void),定义委托类型成员变量, /// 并通过lamada定义多行代码的匿名函数 /// </summary> public Func<int, int, string> Funccc = (x1, x2) => { Console.WriteLine("执行方法"); return string.Format("输出参数:{0}", x1 + x2); }; } }
运行结果: