c#匿名方法用途_C#的匿名方法
匿名方法是在初始化委托时内联声明的方法。
例如下面这两个例子:
不使用匿名方法的委托:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication7
{classProgram
{public static int add(int x)
{
return x + 20;
}delegate int otherdel(intparam);public static voidMain()
{
otherdel del=add;
Console.WriteLine("{0}", del(20));
Console.WriteLine("{0}", del(10));
}
}
}
使用匿名方法的委托:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication7
{classProgram
{delegate int otherdel(intparam);public static voidMain()
{
otherdel del= delegate(int x)
{
return x + 20;
};
Console.WriteLine("{0}", del(20));
Console.WriteLine("{0}", del(10));
}
}
}
两种结果是一样的。
使用匿名方法
1)声明委托变量时候作为初始化表达式。
2)组合委托时在赋值语句的右边。
3)为委托增加事件时在赋值语句的右边。
匿名方法语法
delegate (parameters ){implementationcode};
关键字 参数 语句块
匿名方法不会声明返回值类型。但是匿名方法返回值类型必须和委托返回值一样。
参数:参数数量,类型和修饰符必须和委托一样。
但是我们可以使圆括号为空,或省略圆括号来简化匿名方法的参数列表。但是仅在下面两项都为真的情况下才可以这么做。
1,委托的参数列表不包含任何out参数的委托。
2,匿名方法不使用任何参数。
例如下面:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication7
{classProgram
{delegate int otherdel(intparam);public static voidMain()
{
otherdel del= delegate{
cleanup();
printMessage();
};
}
}
}
params参数:
如果委托参数包含params参数,那么params关键字就会被匿名方法的参数列表忽略。如下:
delegate int otherdel(int x,params inty);
otherdel del= delegate(int x,inty)
{-------------};
c#匿名方法用途_C#的匿名方法相关推荐
- 匿名网络追踪溯源机制及方法
Tor作为匿名网络的代表,被誉为"暗网之王",而TOR这个网络具有双面性.Tor通过保护通信双方的身份信息,能有效防止用户个人信息的泄露,成为一种新的网络访问方式.但同时,攻击者也 ...
- 2021-02-23关于java的方法区,为什么叫方法区,是否与实际用途相悖?
关于java的方法区,为什么叫方法区,是否与实际用途相悖? 在java中,栈中存放的是用来保存方法运行时状态的栈帧,存储了局部变量表,操作数栈等,而方法区存放的是已加载的类的基本信息.常量.静态变量等 ...
- Android之Inflate()方法用途+setContentView和inflate区别
引用:http://blog.chinaunix.net/uid-27024249-id-3304935.html Android之Inflate()方法用途 Inflate()作用就是将xml定义的 ...
- python的用途实例-python中类方法,实例方法,静态方法的作用和区别
Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义 ...
- c#语言怎么定义函数,C#方法方法用法 _C#语言-w3school教程
C#语言 的 C#方法 C#中的方法是一组执行任务的语句. 每个 C# 程序至少有一个类包含一个名称为Main()的方法. 要使用方法,需要: 定义方法 调用方法 C# 中定义方法 当要定义一个方法时 ...
- c#拷贝datatable行_C# DataTable使用方法详解
在项目中常常常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 1.添加引用 usi ...
- Go 学习笔记(34)— Go 方法声明、方法调用、方法值、方法表达式、切片对象方法、指针对象方法
1. 方法声明 Go 语言的方法非常纯粹, 可以看作特殊类型的函数, 其显式地将对象实例或指针作为函数的第一个参数, 并且参数名可以自己指定, 而不强制要求一定是 this 或 self .这个对象实 ...
- python真正实现多线程的方法_python多线程几种方法实现
匿名用户 1级 2018-05-27 回答 Python进阶(二十六)-多线程实现同步的四种方式 临界资源即那些一次只能被一个线程访问的资源,典型例子就是打印机,它一次只能被一个程序用来执行打印功能, ...
- [改善Java代码]覆写equals方法必须覆写hashCode方法
覆写equals方法必须覆写hashCode方法,这条规则基本上每个Javaer都知道,这也是JDK API上反复说明的,不过为什么要这样做呢?这两个方法之间有什么关系呢?本建议就来解释该问题,我们先 ...
最新文章
- Codeforces 600E Lomsat gelral (树上启发式合并)
- 计算机模拟专业,2017年数值模拟专业知识题库
- Spring AOP实例——异常处理和记录程序执行时间
- python 执行js_Python爬虫之记录一次下载验证码的尝试
- 常用linux系统管理工具
- 导出数据库数据生成word【2】--itext直接写word中写入内容
- java自行车租凭系统项目包_基于java的校园自行车租用管理系统的设计及实现终极版.pdf...
- 单点登录系统设计分析
- 胡乱学Java_遇见类与对象
- Android 游戏破解修改金币
- System.InvalidOperationException: Timeout expired. Max Size Pool connections.
- 如何手动制作透明的图片相框 可以供android使用
- mysql日期函数_英文简写月的转换
- 台式计算机如何双屏显示,台式机如何去设置双屏
- [转]为ERP的定义“拨乱反正”
- App Clips 新特性
- Context上下文穿插方式,不是设计模式,但胜于设计模式。
- 八十年代出生人的十大尴尬
- 互联网公益:回归初心
- mt6765芯片原理图mt6765资料打包
热门文章
- netty单片机通讯_SSM+Netty实现软硬件通信,真实项目案例
- BCompare日志
- 美团面试动态规划——整数拆分
- Oracle 原理: 公有同义词 和 私有同义词
- springboot后台怎么获取前端传过来的excel_开源商城系统包含后台管理和手机端
- cmake / add_compile_options、CMAKE_CXX_FLAGS 和 add_definitions 区别
- Qt / 如何解决移动了 Qt 的项目,但是 Qt 在原目录下生成编译文件的问题
- 乐鑫代理启明云端分享|ESP32 系列教程之四: Windows 搭建 esp-idf 环境
- java代码输出伞_在伞中集成测试Web应用程序的问题
- 服务器上如何安装两个php网站,服务器安装两个php版本吗