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();

        }

}

 

http://www.cnblogs.com/carysun/archive/2009/12/09/CSharp4.html

 

参考资料:

C#4.0新特性:可选参数,命名参数,Dynamic
http://www.cnblogs.com/carysun/archive/2009/12/09/CSharp4.html

翻译:Visual C# 4.0的新特性-第三部分-Dynamic ExpendoObject
http://www.cnblogs.com/codeyu/archive/2009/12/08/1616839.html

C# 4.0中dynamic的用法
http://space.itpub.net/740297/viewspace-600670

介绍C# 4.0新特性dynamic
http://developer.51cto.com/art/200908/144976.htm

二十行C#代码打造Ruby Markup Builder
http://www.cnblogs.com/JeffreyZhao/archive/2009/10/27/implement-ruby-markup-builder-in-20-lines-of-c-sharp-codes.html

Dynamic in C# 4.0: Introducing the ExpandoObject
http://blogs.msdn.com/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the-expandoobject.aspx

C#4.0的dynamic用法(一)——巧用反射
http://www.cnblogs.com/architect/archive/2009/03/13/1410921.html

C#动静结合编程之三:Duck Typing
http://www.cnblogs.com/weidagang2046/archive/2009/03/26/1421943.html

也谈.NET反射的封装
http://www.cnblogs.com/weidagang2046/archive/2009/04/30/1446928.html

C#动态特性的更多消息
http://www.infoq.com/cn/news/2009/04/Dynamic-CSharp

Fun With Method Missing and C# 4
http://haacked.com/archive/2009/08/26/method-missing-csharp-4.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值