C#版本,VS版本和.NET框架版本等如何组合在一起

本文关键字:版本 何组合 在一起 组合 VS NET 框架 | 更新日期: 2023-09-27 18:34:33

我对MS堆栈的所有部件如何组合在一起感到非常困惑。对于给定的项目,C#版本,Visual Studio版本,.NET Framework版本和 ASP.NET 版本(这与.net版本相同吗?(如何组合在一起?

例如,如果我将 Visual Studio 2010 用于面向 .NET Framework 2 的项目,我如何知道可以使用哪些 C# 或 ASP.NET 功能?

C#版本,VS版本和.NET框架版本等如何组合在一起

C# 版本控制您可以使用哪种语言功能;它独立于其他所有功能。 (因为它只是编译器(
即使面向较旧的框架,您也可以使用(大多数(较新的语言功能。

但是,其中一些功能(例如,dynamic或NoPIA(依赖于特定.Net Framework版本中的功能。

.Net Framework版本控制您可以使用.Net的哪些部分;一些.Net功能(例如,LINQ或TPL(是在较新版本(分别为3.5和4.0(中引入的。

为了使事情变得更加复杂,ASP.Net 运行时调用 C# 编译器来编译 ASPX 或 Razor 视图(以及网站项目中的独立文件(,因此在这种情况下不能使用比框架版本更新的语言功能。

C# 版本是用于

编译源代码的编译器版本,VS 版本是 Visual Studio IDE 的版本,可能支持多个框架版本。 框架的版本会影响可用的 .NET BCL(基类库(的版本。

因此,如果以 2.0 框架为目标(如示例中所示(,则只能使用 2.0 框架中可用的 BCL 库。 因此,您不能使用 System.Linq .

但是,由于VS2010使用C# 4编译器,因此可以使用C#4编译器功能(如默认参数(,并且仍面向较旧的框架。

因此,当从VS2010构建时,这将在2.0框架下编译和运行,因为C#4编译器在编译时处理默认参数:

class Program
{
    public static void HelloWorld(string x = "Hi")
    {
        Console.WriteLine(x);
    }
    static void Main(string[] args)
    {
        HelloWorld();
        HelloWorld("Buyah");
    }
}
查看 C# 的维

基百科条目中的表格,该表很好地概述了不同版本的 C# 语言(和编译器(,以及它们所依赖的 .NET 和 Visual Studio 版本。

请记住,Visual Studio 通常是向后兼容的,因此即使在 Visual Studio 2010 中,您也可以针对 .NET Framework 2.0 编写 C# 2.0 代码。

Visual Studio 版本

控制可以使用哪些 C#/.NET 版本;不能使用 Visual Studio 2005 中的 .NET 4.0 功能编写 C#,因为 IDE 是在 C# 版本之前发布的。但是,您可以向后移动,即从VS 2010中以.NET 2.0为目标。

关于框架版本和 IDE 的 C# 版本如下,从 .NET/C# 2.0 和 VS 2005 开始:

VS 2005 | .NET 2.0 及更早版本 |C# 2.0 及更早

版本

VS 2008 | .NET 3.5 及更早版本 |C# 3.0 及更早

版本

VS 2010 | .NET 4.0 及更早版本 |C# 4.0 及更早

版本

VS 11(测试版(| .NET 4.5 及更早版本 |C# 5.0 及更早

版本

Visual Studio是IDE。 它支持多个版本的 .Net,具体取决于你拥有的 VS 版本。 VS2010支持最早的.Net 2和高达.Net 4(不包括当前的测试版(

.Net基于库的功能有自己的版本

彼此独立,.Net,C#和VB有自己的版本号。 VB接管了经典的VB,最后我检查了11。 C#与.Net数字非常接近。 当语言本身获得独立于自由的新功能时,这些都会发生变化。

同样,ASP.Net 也有自己的版本,基于不同的功能。

它们都是相互关联的,但并不相互依赖。 通常,当 .net 版本更高时,它们都会上升一个版本,但偶尔它们会在更新语言或框架之前发布新功能以供 ASP.Net。

表格更适合这里,但这是我的答案:

语言: C# 1, .NET Frameworks 1.0, 1.1, VS 2003

语言:C# 2,.NET Frameworks 2.0,VS 2005(主要功能已添加: 泛型(

语言:C# 3,.NET Framework 3.0,3.5(实际上它们基于以下 版本 2.0(, VS 2008 (添加的主要功能: LINQ(语言(, WCF, WPF, WF(技术(

语言:C# 4,.NET Framework 4.0,VS 2010(主要功能添加: 动态类型(

顺便说一下:VS 2008,2010可以从2.0版本开始针对.NET Frameworks