您所在的位置:开发 > .NET > C# > C# 4.0新功能和展望(2)

C# 4.0新功能和展望(2)

2008-11-04 11:06 张羿 CSDN博客 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

刚才刚看完Anders的PDC Talk,感觉C# 4.0的变化不是很大,但是很多改动都方便了用户的使用,有些甚至当初Anders本来不愿意加入的功能最后由于用户的呼声最后还是加进去了(如Optional Parameters),可见Anders对用户的意见还是非常重视的。稍微总结一下,C# 4.0中有下面这些功能.

AD:

4. Co-Variance & Contra-Variance

这个相对难以理解一些。Co-Variance和Contra-Variance在这系列文章中有讲述:http://blogs.msdn.com/ericlippert/archive/tags/Covariance+and+Contravariance/default.aspx,此人是C#编译器的Dev,自然有比较权威的解释,而且这个系列有N篇文章,讲的比较复杂。有空我会把这块内容详细在Blog中解释一下。

简单来讲,Co-Variant表示某模板参数用作传出,也即是函数的返回值或者out参数,等等,用关键字out表明:

 public interface IEnumerator<out T> // Co-Variant
   {      T Current { get; }  bool Next(); 
   }   IEnumerator<string> strings = GetStrings(); 
  IEnumerator<object> objects = strings; // 这个OK,反之报错

在上面的转换,意味着IEnumerator可以被视作IEnumerator

反之,Contra-Variant表示模板参数T只能被用在函数入参或者属性的入参,用in表示:

 public interface IComparer<in T> // Contra-Variant 
 {   int Compare(T x, T y);   } IComparer<object> 
objComp = GetComparer();
 IComparer<string> strComp = objComp; // 这个OK,反之报错

类似的,任何使用IComparer.Compare(string x, string y)的地方都会传入string,自然会被IComparer

5. C# 5.0

5.1 Meta-Programming Capabilities

学习Ruby On Rails,引入强大的Meta-Programming能力。

5.2 Compiler As Service

用托管代码重写编译器(原来是用C++编写的,使用IMetaDataEmit接口输出PE文件),支持其他人编写代码参与整个编译过程(估计类似Plugin)或者调用编译过程(类似已有的动态语言的eval功能)。

Anders演示了通过CSharpEvaluator直接编译用string表示的C#代码然后直接执行:

  CSharpEvaluator ev = new CSharpEvaluator(); 
ev.Eval(“for (int i = 0; i < 10; i++) { … }");

通过这个就可以很容易写一个C#的Shell了:

C#> int Add(int a, int b) { return a+b; }

C#> Add(1, 2)

3

C#> Form = new Form() { Text = “Hello World” };

这个基本上是原来的动态语言的强项,现在C#也可以做了!

【编辑推荐】

  1. 从微软PDC大会看ASP.NET和C#的技术走向
  2. C# 4.0 的4个新特性
  3. 提高C#编程水平的50个要诀
【责任编辑:李明源 TEL:(010)68476606】

内容导航

分享到:
关于C#4.0  C#功能  C#展望的更多文章
宅男程序员给老婆的计算机课程

从今天起将开始的这个系列来自一位宅男程序员,这个系列是他写给[详细]

网友评论TOP5

查看所有评论(

提交评论

  1. 专题:JVM编程语言,你的选择?
  2. 宅男程序员给老婆课程之11:域模型

文章排行

本月本周24小时

热点专题

更多>>

读书

Linux安全体系分析与编程
本书选择经典的开放源代码,全面系统地分析了Linux安全机制。本书共有17章,前10章着重介绍了Linux操作系统的安全机制及实现方法

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 移动互联网生活门户 灵客风LinkPhone