kol*_*kol 7 c# windows compiler-construction mono windows-2000
在旧的Win2k上,.NET Framework支持的最高版本是2.0.如果想运行现代C#应用程序(例如,使用LINQ),Mono Framework可能就是解决方案.不幸的是,目前尚不清楚Mono是否支持Windows 2000.在下载页说,最新的版本(3.0.1-β)"适用于Windows XP,2003,Vista和Windows 7的所有版本",而是由安装程序显示的发行说明称,"此版本的Windows 2000或更高版本上运行".
作为一个快速测试,我尝试使用不同版本的Mono(2.0,2.10.9,3.0.1-beta)在Win2k盒子上编译并运行以下代码:
// Test.cs
using System;
using System.Linq;
public static class Test
{
public static void Main()
{
Console.WriteLine(Environment.Version);
int[] numbers1 = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var numbers2 = from number in numbers1 where number < 5 select number;
Func<int, int> negate = number => -1 * number;
foreach (var number in numbers2)
Console.WriteLine(negate(number));
}
}
Run Code Online (Sandbox Code Playgroud)
我打开了Mono命令提示符,将工作目录更改为Test.cs,然后尝试编译它mcs Test.cs.
gmcs
而不是mcs.我可以在Mono 2.0上成功运行可执行文件.(当我尝试在.Net 2.0上运行它时,我得到了一个例外,正如我预期的那样.)问题: Mono是否仍支持Windows 2000?版本2.0和3.0之间的Mono发生了什么,这可以解释上面提到的编译问题?如何让最新版本在Win2k上运行?
小智 2
您不需要比 .NET 2.0 更新的任何内容即可获得大部分优秀的 .NET 3.5 功能。即使面向 .NET 2.0,Visual Studio 2008-2012 中包含的 C# 3 编译器也支持类型推断、lambda 方法等。
但这里有一个重要的链接(双关语;)):http://code.google.com/p/linqbridge/ LinqBridge 为您提供 .NET 2.0 上完整的 Linq-to-Objects 支持。