c#匿名函数

张开发
2026/5/5 14:31:58 15 分钟阅读
c#匿名函数
匿名函数的概念顾名思义就是没有名字的函数匿名函数的使用主要是配合委托和事件进行使用脱离委托和事件 是不会使用匿名函数的基本语法delegate (参数列表){函数逻辑};何时使用1.函数中传递委托参数时2.委托或事件赋值时使用1无参无返回这样申明匿名函数 只是在申明函数而已 还没有调用真正调用它的时候 是这个委托容器啥时候调用 就什么时候调用这个匿名函数Action a delegate () { Console.WriteLine(匿名函数逻辑); }; a();2.有参class Test { public Action action; //作为参数传递时 public void Dosomthing(int a, Action fun) { Console.WriteLine(a); fun(); } //作为返回值 public Action GetFun() { return delegate() { Console.WriteLine(函数内部返回的一个匿名函数逻辑); }; } public void TestTTTT() { } }Actionint, string b delegate (int a, string b) { Console.WriteLine(a); Console.WriteLine(b); }; b(100, 123);3.有返回值Funcstring c delegate () { return 123123; }; Console.WriteLine(c());4 一般情况会作为函数参数传递 或者 作为函数返回值class Test { public Action action; //作为参数传递时 public void Dosomthing(int a, Action fun) { Console.WriteLine(a); fun(); } //作为返回值 public Action GetFun() { return delegate() { Console.WriteLine(函数内部返回的一个匿名函数逻辑); }; } public void TestTTTT() { } } Test t new Test(); Action ac delegate () { Console.WriteLine(随参数传入的匿名函数逻辑); }; t.Dosomthing(50, ac); t.Dosomthing(100, delegate () { Console.WriteLine(随参数传入的匿名函数逻辑); }); //返回值 Action ac2 t.GetFun(); ac2(); //一步到位 直接调用返回的 委托函数 t.GetFun()();匿名函数的缺点添加到委托或事件容器中后 不记录 无法单独移除因为匿名函数没有名字 所以没有办法指定移除某一个匿名函数Action ac3 delegate (){Console.WriteLine(匿名函数一);};ac3 delegate (){Console.WriteLine(匿名函数二);};ac3();

更多文章