.Net 4.0 dynamic 关键字
时间:2011-05-04 来源:Eye's
动态性编程特性
.NET4.0 引入了一个"动态语言运行时(Dynamic Language Runtime—DLR)",在DLR之上提供了一个动态语言的运行环境,从而允许Ruby 等动态语言编写的程序在.NET 平台上运行.
using System; namespace DynamicExample { class Program { static void Main(string[] args) { dynamic d = 3; //动态推断d为int类型 Console.WriteLine(d + 3); //输出结果为6 ExampleClass ec = new ExampleClass(); Console.WriteLine(ec.exampleMethod(10));//数字:10 Console.WriteLine(ec.exampleMethod("value"));//字串:value // 以下对ec.exampleMethod()方法的调用将引发编译错误,因为此方法只接收一个参数 //Console.WriteLine(ec.exampleMethod(10, 4)); dynamic dynamic_ec = new ExampleClass(); Console.WriteLine(dynamic_ec.exampleMethod(10));//数字:10 // 由于 dynamic_ec 是dynamic的,因此,编译器不会检测其参数 // 以下代码将可以顺利通过编译,却会引发一个运行时错误 Console.WriteLine(dynamic_ec.exampleMethod(10, 4)); Console.ReadKey(); } } class ExampleClass { static dynamic field; //静态的dynamic字段 dynamic prop { get; set; } //dynamic属性 public dynamic exampleMethod(dynamic d)//dynamic方法 { if (d is int) { return "数字:" + d.ToString(); } else { return "字串:" + (string)d; } } } }
相关阅读 更多 +