• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#中的匿名方法实例解析

C#中的匿名方法实例解析

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#静态方法和实例方法,c#实例方法,c#方法重载实例,c#方法的实例化,c#窗体应用程序实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文较为详细的讲述了C#中的匿名方法,并附上实例加以说明。现将其分享给大家供大家参考之用。具体分析如下:

首先,C#中的匿名方法是在C#2.0引入的,它终结了C#2.0之前版本声明委托的唯一方法是使用命名方法的时代。虽然在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方法,作为编写内联代码的首选方式。但是,匿名方法的信息同样也适用于 Lambda 表达式,可以说 Lambda 表达式就是匿名方法演变过来的。

我们可以使用匿名方法来忽略参数列表。 这意味着匿名方法可转换为具有各种签名的委托,而这对于 Lambda 表达式来说是不可能的。 学好匿名方法,才能更加深刻地理解好 Lambda 表达式。

在说匿名方法的使用之前,先来说说匿名方法的其他叫法。匿名方法也有人叫匿名委托、匿名函数,虽然现在普遍通用,但是还是有点区别的。msdn官网上说:要将代码块传递为委托参数,创建匿名方法则是唯一的方法。这里的匿名方法就是官方的说法,而因为匿名方法就是为了将代码块传递为委托参数,因此也有人叫匿名委托,包括笔者也喜欢这种称呼,我觉得这样叫通俗易懂。至于匿名函数,因为C#中“方法”(Method)的概念有些语言叫“函数”(Function),因此匿名方法也被人叫做匿名函数。然而在msdn文档介绍中匿名函数包括了Lambda 表达式和匿名方法,可以说匿名函数是更高的一级,所以说最官方的叫法还是匿名方法,当然其他的叫法流传也甚广,听得懂就行了,没必要纠结。

接下来说说匿名方法的写法规则,先上例子:

delegate(int i) { return i > 0; }
</div>

它遵循这样的格式书写:

delegate(形参表){方法体代码}
</div>

可以类比js中匿名函数的写法来记忆。

那么匿名方法运用在哪里呢?怎么使用呢?当你需要一个临时方法,该方法使用次数极少或者你需要的这个方法的代码很简短,那么你就可以使用匿名方法。给个简单的例子,如果需要在一个整型集合中筛选出符合条件的新集合,如下

List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6 };
//假设需要从list集合中获取大于3的所有元素以新集合返回
var newlist = newlist.FindAll(GetNewList);

</div>

GetNewList()为另外定义的和委托Predicate<T>具有同签名的方法(Predicate<T>是系统内置委托)

GetNewList()定义如下:

bool GetNewList(int i)
{
  return i > 3;
}

</div>

以上是没有使用匿名方法时的写法,如果使用了匿名方法,你就会发现一切变得如此简便,

List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6 };
var newlist = list.FindAll(delegate(int i) { return i > 3; });

</div>

通过对比,可以发现使用匿名方法能够提供与先前命名方法相同的功能,但是它已经不再需要一个在关联到委托之前就明确创建的方法了,因此也减少了实例化委托所需的编码系统开销,这就是它的最大好处。

相信本文所述对大家的C#程序设计有一定的借鉴价值。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#递归方法实现无限级分类显示效果实例
  • c#读取excel方法实例分析
  • C#确保只有一个实例在运行的方法
  • C#生成单页静态页简单实例
  • C#中的匿名方法实例解析
  • c#静态方法和非静态方法详细介绍
  • C# 拓展方法的简单实例
  • c#解压文件的实例方法

相关文章

  • 2017-05-28C#获取动态生成的CheckBox值
  • 2017-05-28解析C#中[],List,Array,ArrayList的区别及应用
  • 2017-05-28c#连接sqlserver数据库、插入数据、从数据库获取时间示例
  • 2017-05-28C#处理Paint事件的方法
  • 2017-05-28winform绑定快捷键的方法
  • 2017-05-28使用位运算实现网页中的过滤、筛选功能实例
  • 2017-05-28C#通过oledb访问access数据库的方法
  • 2017-05-28C#的Excel导入、导出
  • 2017-05-28C#读取文件MD5值的实现代码
  • 2017-05-28C# winform实现登陆次数限制

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • c#保存窗口位置大小操作类(序列化和文件读写功能)
    • 解析C#中的装箱与拆箱的详解
    • C#动态创建button的方法
    • WPF设置窗体可以使用鼠标拖动大小的方法
    • winfrom 打印表格 字符串的封装实现代码 附源码下载
    • C#读取xml节点数据方法小结
    • C#通过创建Windows服务启动程序的方法详解
    • C#简单快速的json组件fastJSON使用介绍
    • 基于C#生成随机数示例
    • C#流类FileStream学习使用笔记

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有