C#4.0 dynamic动态类型
静态和动态类型
静态语言如C#,C++,Java都是在编译时执行类型检查,与此相反,动态语言如JavaScript,Perl和Ruby都是在运行时执行类型检查。C#最初被设计为基于强壮类型的语言,因为编译器可以确保类型匹配,在开发周期的早期阶段就会发现bug。现在情况发生了变化,在C#中引入了动态类型,你可以无缝地调用不同类型的对象了,如COM和JavaScript。
Var和dynamic关键字
为了支持动态变量声明,C# 4.0引入了关键字dynamic,在C#中var和dynamic关键字提供了本地类型含义,你不需要在赋值运算符左边指定数据类型,系统会动态绑定正确的类型。但与dynamic关键字不同的是,使用var时,你必须在赋值运算符的右边指定类型。使用dynamic关键字时,你不用指定任何类型,所有类型绑定都在运行时完成。
ExpandoObject普通应用 “需引用System.Dynamic命名空间” 。如下代码:
dynamic User= new ExpandoObject();
User.Name = "ZhangSan";
User.Age = 52;
User.Sex= true;
Console.WriteLine(string.Format("姓名:{0} 年龄:{1} 岁 性别:{2}",User.Name ,User.Age ,User.Sex));
Console.ReadKey();
User.Name = "ZhangSan";
User.Age = 52;
User.Sex= true;
Console.WriteLine(string.Format("姓名:{0} 年龄:{1} 岁 性别:{2}",User.Name ,User.Age ,User.Sex));
Console.ReadKey();
得到结果是:姓名:ZhangSan 年龄:52 岁 性别:true
作者:rpoplar
出处:http://www.cnblogs.com/rpoplar/
本文版权归作者【rpoplar】和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究其法律责任的权利。
出处:http://www.cnblogs.com/rpoplar/
本文版权归作者【rpoplar】和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究其法律责任的权利。