在.NET 2上运行和不运行的是什么?

时间:2013-11-29 10:19:23

标签: c# .net visual-studio-2012 compatibility backwards-compatibility

我有Visual Studio 2012并且我的目标框架设置为.NET 2.0。

但我有:

ThreadPool.QueueUserWorkItem(example => Threadedmethod(intval,classVal) );

void Threadedmethod(int id, MyClass val)
{ ....  }

并编译。

如何判断这是否适用于VS2012?我被告知=>运算符与.NET 2.0不兼容。

2 个答案:

答案 0 :(得分:4)

我认为您对.net版本和c#版本感到困惑。当您定位到.Net 2.0时,您仍然可以使用c#(语言功能),如lambda,扩展方法,集合初始化程序,对象初始化程序等。

这与.Net版本无关。事情是你不能使用.Net版本中新添加的类>你的目标版本。

请记住,在编译代码时,您的代码完全有效,并且只在.Net framework 2.0的机器中正常运行。

  

我被告知=>在.net 2.0中无效

这是错误的,正确的声明 c#2.0 中无效,但您在VS2012中没有使用c#2.0。它是你在那里使用的c#5.0编译器。

有关详细信息,请阅读Jon's article,尤其是在.NET 2.0和3.0中使用C#3 部分。

我的结论:您的应用程序将在.Net 2.0中完美运行,毫无疑问

答案 1 :(得分:1)

  

因为我被告知=>在.net 2.0中无效

事实并非如此。您可以在VS2012上运行.Net 2.0框架。

选中此wiki,其中列出了VS2012中允许的所有框架。

  

Visual Studio 2012 Dev11 11.0 2.0,3.0,3.5,4.0,4.5   02012-09-12 2012年9月12日

来自MSDN

  

框架定位并不能保证您的应用程序能够运行   正确。您必须测试您的应用程序以确保它运行   目标版本。您无法定位框架版本   早于.NET Framework 2.0。