C#的正确版本号是什么?什么时候出来的?为什么我找不到有关C#3.5的任何答案?

这个问题主要是为了帮助那些使用错误版本号(例如C#3.5)搜索答案的人。希望任何没有找到错误版本号答案的人都能找到这个问题,然后用正确的版本号再次搜索。


当前回答

预览:C#11.0.NET Core 7.0 Visual Studio 2022更新1

阅读更多信息

允许在插值字符串的“孔”中使用换行符列出模式参数空值检查与可为空的引用类型的交互泛型属性字段关键字接口中的静态摘要或模式下的声明记录和初始化受歧视的工会T的参数范围语句作为表达式表达式树类型系统扩展

其他回答

处理C#版本号时最大的问题是,它没有绑定到.NET Framework版本,这似乎是由于Visual Studio和.NET Framework之间的同步发布。

C#的版本实际上绑定到编译器,而不是框架。例如,在Visual Studio 2008中,您可以编写C#3.0,并以.NET Framework 2.0、3.0和3.5为目标。C#3.0命名法描述代码语法和支持功能的版本,与ANSI C89、C90和C99描述C的代码语法和功能的方式相同。

看看Mono,你会发现Mono 2.0(大部分是从ECMA规范中实现的.NET Framework 2.0版本)支持C#3.0语法和特性。

预览:C#11.0.NET Core 7.0 Visual Studio 2022更新1

阅读更多信息

允许在插值字符串的“孔”中使用换行符列出模式参数空值检查与可为空的引用类型的交互泛型属性字段关键字接口中的静态摘要或模式下的声明记录和初始化受歧视的工会T的参数范围语句作为表达式表达式树类型系统扩展

Version     .NET Framework     Visual Studio     Important Features

C#1.0.NET Framework 1.0/1.1 Visual Studio.NET 2002

基本功能

C#2.0.NET Framework 2.0 Visual Studio 2005

泛型分部工程类型匿名方法遍历器可为空的类型私有setter(财产)方法组转换(委托)协方差和反方差静态类

C#3.0.NET Framework 3.0\3.5 Visual Studio 2008

隐式类型的局部变量对象和集合初始化器自动实现的财产匿名类型扩展方法查询表达式Lambda表达式表达式树分部方法

C#4.0.NET Framework 4.0 Visual Studio 2010

动态绑定(后期绑定)命名参数和可选参数通用协变量和反变量嵌入式互操作类型

C#5.0.NET Framework 4.5 Visual Studio 2012/2013

异步功能呼叫者信息

C#6.0.NET Framework 4.6 Visual Studio 2013/2015

表达式实体方法自动属性初始值设定项表达式名称主构造函数在挡块中等待异常筛选器字符串插值

C#7.0.NET Core 2.0 Visual Studio 2017

输出变量多元组丢弃图案匹配本地功能通用异步返回类型数字文字语法改进

C#8.0.NET Core 3.0 Visual Studio 2019

只读成员默认接口方法图案匹配增强功能:切换表达式属性模式褶皱图案位置模式使用声明静态局部函数一次性引用结构可为空的引用类型异步流异步一次性指数和范围空合并赋值未管理的构造类型嵌套表达式中的Stacklalloc增强内插逐字字符串

Visual Studio.NET中的C#1.0Visual Studio 2005中的C#2.0Visual Studio 2008中的C#3.0Visual Studio 2010中的C#4.0C#5.0与Visual Studio 2012Visual Studio 2015中的C#6.0C#7.0与Visual Studio 2017C#8.0与Visual Studio 2019C#9.0与Visual Studio 2019

比较MSDN文章“C#2.0语言和编译器中的新增功能”和“Visual C#2005中的新增”,可以推断出“C#major_version.minor_version”是根据编译器的版本编号创建的。

有与.NET 1.1和VS 2003相对应的C#1.2,也称为Visual C#.NET 2003。

但在进一步的研究中,微软停止了增加次要版本(在点之后)的数字,或者让它们不是零,0。尽管应该注意,与.NET 3.5对应的C#在msdn.microsoft.com中被命名为“Visual C#2008 Service Pack 1”。

有两种并行命名:按.NET/编译器主要版本编号和Visual Studio编号。

C#2.0是Visual C#2005的同义词

C#3.0对应(或者更准确地说,可以针对):

.NET 2.0<==>Visual C#2005.NET 3.0<==>Visual C#2008.NET 3.5<==>Visual C#2008 Service Pack 1