WEB开发网
开发学院软件开发C语言 浅谈 Microsoft C# 编译器和 Mono C# 编译器 阅读

浅谈 Microsoft C# 编译器和 Mono C# 编译器

 2009-05-09 08:26:41 来源:WEB开发网   
核心提示: 但是,如果用 mono C# 编译器编译就可以顺利通过,浅谈 Microsoft C# 编译器和 Mono C# 编译器(6),实际上,即便加上这个“ : this() ” ,而 Microsoft C# 编译器生成的代码有很多不必要的垃圾,以上观点如有不妥之处,m

但是,如果用 mono C# 编译器编译就可以顺利通过。实际上,即便加上这个“ : this() ” ,mono C# 编译器也完全无视它,也就是说,即使在有“ : this() ” 的情况下,mono C# 编译器也不会生成调用  Block 结构的默认构造函数的 IL 代码,它直接忽略了这个“ : this() ”。而且,这样做也没有造成什么不良后果,block.mono.exe 在 Windows 和 Linux 操作系统下都运行良好。

最后,block.cs、block.windows.exe 和 block.mono.exe 这三个文件可以在这里下载。

实际上,之所以会写这篇文章,是因为我在做“Timus 1037. Memory management”这道 ACM 题的时候,是在 Ubuntu 9.04 Linux 下使用 MonoDevelop 2.0 写程序的,如下所示:

浅谈 Microsoft C# 编译器和 Mono C# 编译器

图片看不清楚?请点击这里查看原图(大图)。

从上图中可以看出,在 Block 结构的构造函数中没有“ : this() ” ,这在 Linux 下运行得很好。但是,提交到 ACM 网站后,由于该网站是使用 Microsoft Visual C# 2008 версии 3.5.30729.1 编译器,导致编译出错。

这就引起了我比较 Microsoft C# 编译器和 mono C# 编译器的兴趣,于是就产生了这篇文章。

总结一下,我认为目前的 mono C# 编译器生成的代码比较高效,而 Microsoft C# 编译器生成的代码有很多不必要的垃圾。

以上观点如有不妥之处,欢迎各位大侠指正。

上一页  1 2 3 4 5 6 

Tags:Microsoft 编译器 Mono

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接