【C#复习总结】细说匿名方法
1 前言
本系列会将【委托】 【匿名方法】【Lambda表达式】 【泛型委托】 【表达式树】 【事件】等基础知识总结一下。(本人小白一枚,有错误的地方希望大佬指正)
系列4:细说泛型委托
系列5:细说表达式树
系列6:细说事件
接着上篇的委托来讲一下匿名方法,依然用大佬的文章来开头:
“在上一篇已经知道了,完成一个委托应用分三步走,缺一步都不行,如果要跨大步,当心步子大了扯着蛋。但是微软不怕扯着蛋,非要把三步做成两步来走啊!所以微软就用匿名方法来简化上边的三个步骤。匿名方法这个玩意儿怎么说呢,在C#中完全是可有可无的东西,只是为C#锦上添花,有人别出心裁给它取个名字叫语法糖。”
2 什么是匿名方法
匿名方法是C#2.0引入的一个新特性,它允许开发者内联(inline)声明自己的函数代码而无须使用委托函数(delegate function。匿名方法通常在1. 需要一个临时方法,该方法使用次数极少;2. 这个方法的代码很短,甚至可能比方法声明都短的情况下使用。
3 初识匿名方法
我们已经提到过,委托是用于引用与其具有相同标签的方法。换句话说,您可以使用委托对象调用可由委托引用的方法。
匿名方法(Anonymous methods) 提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。
在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。
4 匿名方法的使用
只需要两步就可以完成:
step01:首先用delegate定义一个委托 。
step02:用这样的写法 delegate(int x, int y) { return x + y; },把一个方法赋值给委托,其实这种写法就是匿名方法。
class Program { //step01:首先用delegate定义一个委托 。 public delegate int CaculateAdd(int x, int y); static void Main(string[] args) { //step02:用这样的写法 delegate (int x, int y) { return x + y; },把一个方法赋值给委托 CaculateAdd add1 = delegate (int x, int y) { return x + y; }; //int result = cAdd.Invoke(5, 6); int result = add1(4, 5); Console.WriteLine(result); Console.ReadKey(); } }
这时会惊奇的发现,这不是三步当着两步走了哇?
5 总结
匿名方法实现委托的方式只用了两步,省去了声明方法这一个步骤,对于编程人员方便了不少。到此,匿名方法就已经讲的差不多了,下一篇文章讲一下Lambda表达式。
友情提示
作者: mhq_martin
博客园地址: http://www.cnblogs.com/mhq-martin/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
- 匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包
- 【C#复习总结】细说委托
- 【C#复习总结】细说表达式树
- 【C#复习总结】细说 Lambda表达式
- 【C#复习总结】匿名类型由来
- 复习总结C#中的string的常用容易混乱的方法
- c#基础--方法(复习总结)
- 为LINQ服务的C#新特性总结篇---扩展方法,匿名委托,lambda表达式,Action委托,Func委托,Linq中的order by,top和sum函数
- 【C#复习总结】细说泛型委托
- 总结C#获取当前路径的7种方法【转】
- 决策树和基于决策树的集成方法(DT,RF,GBDT,XGB)复习总结
- C#基础总结——虚方法和抽象方法
- C#执行Javascript代码的几种方法总结
- C#基础精华07(委托事件,委托的使用,匿名方法)
- C# 适应虚函数,抽象类,接口分别实现多态的方法总结。
- c#匿名方法
- C#窗体间通讯的几种常用处理方法总结
- C#发送Email邮件方法总结
- 对C# 2.0中匿名方法的怀疑分析
- C#将字符串转换为整型的三种方法的总结