在之前的文章中,我们曾介绍过C#的历史及C# 4.0新增特性,包括:dynamic、命名和可选参数、动态导入以及协变和逆变等。今天我们结合代码实例来具体看一下C# 4.0中的四个比较重要的特性。

富拉尔基ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
1.dynamic ExpandoObject
熟悉js的朋友都知道js可以这么写 :
- var t = new Object();
- t.Abc = ‘something’;
- t.Value = 243;
现在这个js动态语言的特性,我们也可以在c#中使用了,前提是将一个变量声明为ExpandoObject类型。如下例:
- static void Main(string[] args)
- {
- dynamic t = new ExpandoObject();
- t.Abc = "abc";
- t.Value = 10000;
- Console.WriteLine("t's abc = {0},t's value = {1}", t.Abc, t.Value);
- Console.ReadLine();
- }
C# 4.0中新增了一个命名空间System.Dynamic来实现对此应用的支持,这种用法的意义何在,现在我还不太清楚,也是是C#向动态语言过渡的一种试探吧。关于动态语言请参考《5月编程语言排行榜:动态语言的前世今生》。
2.泛型自动转换
在C# 4.0之前下面的代码是不可以编译通过的
- IEnumerable