C#4.0新特性:可选参数,命名参数,Dynamic
1.可选参数
可以为方法的参数设置一个默认值,如下:
class Program
{
static void Main(string[] args)
{
Show();
Show("cary");
Console.ReadLine();
}
public static void Show(string msg = "")
{
Console.WriteLine("Hello {0}",msg);
}
}
2.命名参数
上面的Show方法可以象下面的方式调用:
Show(msg:"cary");
当你的方法有多个同一类型的可选参数(optional parameters)时,命名参数(Named parameters)特别有用。如果不用命名参数,编译器就不知道传递的是哪个参数。
3.Dynamic 特性
dynamic关键字用于声明一个动态对象,然后通过该动态对象去调用方法或读写属性。以前我们都是在运行时通过反射,Emit,CodeDom等技术来完成。创建一个dynamic类型的对象需要使用一个特殊的构建器叫ExpandoObject。
class Program
{
static void Main(string[] args)
{
dynamic person = new ExpandoObject();
person.Name = "cary";
person.Age = 25;
person.ShowDescription = new Func<string>(() => person.Name + person.Age);
Console.WriteLine(person.Name+person.Age+person.ShowDescription());
Console.ReadLine();
}
转载于:https://www.cnblogs.com/gjhjoy/p/3573567.html
C#4.0新特性:可选参数,命名参数,Dynamic相关推荐
- 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数
[索引页] [源码下载] 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数, 动态绑定(dynamic), 泛型协变和逆变, CountdownEvent, Barri ...
- C# 4.0 新特性dynamic、可选参数、命名参数等
1.dynamic ExpandoObject 熟悉js的朋友都知道js可以这么写 : 1 var t = new Object(); 2 t.Abc = 'something'; 3 t.Value ...
- Oracle 11.2.0.2新特性——用户重命名(Rename User)
11.2.0.2里新增了一个很有意思的新特性--用户重命名(Rename User),以前俺们都是Rename datafile呀,tablespace呀,Index呀,抑或是constraint之类 ...
- C#6.0,C#7.0新特性
C#6.0,C#7.0新特性 C#6.0新特性 Auto-Property enhancements(自动属性增强) Read-only auto-properties (真正的只读属性) Auto- ...
- Servlet 3.0 新特性概述
Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若 ...
- 【收藏】C# 2.03.0新特性总结
c#2.0新特性 范型 我们知道通用的数据结构可以采用object存储任何数据类型.使用object问题是: 显示的强制转带来的代码复杂性 换装箱拆箱的性能损失(为什么有性能损失?因为涉及动态内存分配 ...
- Servlet 3.0 新特性详解
https://www.ibm.com/developerworks/cn/java/j-lo-servlet30/ Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE ...
- hadoop3.0新特性介绍
hadoop3.0新特性介绍 1. 基于jdk1.8(最低版本要求) 2. mr采用基于内存的计算,提升性能(快spark 10倍) 3. hdfs 通过最近black块计算,加快数据获取速度(块大小 ...
- PHP 7.0+新特性
php7.0至php7.3的新特性和一些变化 PHP7.0 PHP7.0新特性 1. 组合比较符 (<=>) 组合比较符号用于比较两个表达式.当$a小于.等于或大于$b时它分别返回-1.0 ...
最新文章
- 其他算法-比例风险回归模型
- DbgPrint 函数流程分析
- java maven compiler设置默认1.8
- 技术人员应该如何培养
- Effective Java(1)-创建和销毁对象
- apache.commons.lang.StringUtils 使用心得
- c语言竞赛成绩排序,吧内编程竞赛:成绩公布
- 如何看计算机几核,windows7系统怎么看CPU是几核的?win7查看CPU是几核的方法
- httphandler防图片盗链
- html5 遮罩动画,JavaScript仿flash遮罩动画效果
- 彻底卸载2345系列
- 性能服务器漫画免费下拉式,热浪漫画_斗破苍穹漫画免费下拉式
- 【文摘】2008年度_Atom处理器
- windows 2008 server 服务器远程桌面连接会话自动注销,在服务器上开掉的软件全部自动关闭的解决办法...
- win10电脑耳机插上突然没音(已解决)
- 定制嵌入式主板需要考虑的功能
- WiFi_WiFi6和WiFi5区别
- data-toggle,data-target,data-dismiss
- atk-paj7620手势传感器驱动
- ananconda离线安装.tar.bz2包
热门文章
- 支持向量机的前世与今生
- 牛人整理的统计学教材
- linux waitpid子进程,关于waitpid()函数的问题,为什么最后子进程没退出来啊?...
- JAVA偏向锁的什么时候释放_​java偏向锁,你还没上车,它就要被去掉了
- 汇编学习--7.9--寄存器
- 纯新手DSP编程--5.18--调试
- 分布式文件系统_新一代分布式文件系统XGFS揭秘——元数据服务
- java实现打印功能_Js 打印功能的实现(Java)
- mvn dependency命令
- Hive启动的三种方式