C#的正确版本号是什么?什么时候出来?为什么我找不到任何答案 C#3.5?
这个问题主要是为了帮助那些使用不正确的版本号搜索答案的人,例如 C#3.5。希望是任何未能找到错误版本号的答案的人都会发现 这个 问题,然后使用正确的版本号再次搜索。
C#的正确版本号是什么?什么时候出来?为什么我找不到任何答案 C#3.5?
这个问题主要是为了帮助那些使用不正确的版本号搜索答案的人,例如 C#3.5。希望是任何未能找到错误版本号的答案的人都会发现 这个 问题,然后使用正确的版本号再次搜索。
这些是 C#的版本 在撰写本文时已知:
Dispose
上 IEnumerator
实施的 IDisposable
。其他一些小功能。var
),查询表达式dynamic
),委托和接口泛型方差,更多COM支持,命名参数,元组数据类型和可选参数await
在 catch
和 finally
, 延期 Add
集合初始化器中的方法。out
参数声明, 地方职能, 二进制文字,数字分隔符,和 任意异步返回。unmanaged
泛型类型约束。 ref
重新分配。不安全的改进: stackalloc
初始化,取消固定索引 fixed
缓冲区,自定义 fixed
声明。改进了重载分辨率。初始化器和查询中的表达式变量。 ==
和 !=
为元组定义。现在,属性可以定位自动属性的支持字段。IAsyncEnumerable<T>
支持,范围和默认接口方法。C#的正确版本号是什么?什么时候出来?为什么我找不到关于C#3.5的答案?
没有C#3.5这样的东西 - 这里引起混淆的原因是.NET 3.5中存在C#3.0。然而,语言和框架是独立版本的 - 就像CLR一样,.NET 2.0到.NET 2.0版本为2.0,.NET 4引入了CLR 4.0,尽管服务包也是如此。 .NET 4.5中的CLR有各种改进,但版本控制还不清楚:在某些地方它可能被称为CLR 4.5(这个MSDN页面 以某种方式来指代它,例如),但是 Environment.Version
属性仍然报告4.0.xxx。
有关语言,运行时和框架版本之间关系的更多详细信息,请参见 C#深度 现场。这包括有关在面向.NET 2.0时可以使用哪些C#3.0功能的信息。 (如果有人想将所有内容都纳入此维基答案,欢迎他们参加。)
截至2017年5月3日,C#语言团队在其github存储库上创建了C#版本和功能的历史记录: C#语言版本中添加的功能。还有 跟踪即将推出的和最近实现的语言功能的页面。
处理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 2.0(主要是从ECMA规范实现的.NET Framework 2.0版本)支持C#3.0语法和功能。
这与大多数答案相同,但是为了方便而制表,并且它具有Visual Studio和.NET版本以实现完整性。
╔════════════╦════════════╦══════════════╦═════════════╦══════════════╗
║ C# version ║ VS version ║ .NET version ║ CLR version ║ Release date ║
╠════════════╬════════════╬══════════════╬═════════════╬══════════════╣
║ 1.0 ║ 2002 ║ 1.0 ║ 1.0 ║ Feb 2002 ║
║ 1.2 ║ 2003 ║ 1.1 ║ 1.1 ║ Apr 2003 ║
║ 2.0 ║ 2005 ║ 2.0 ║ 2.0 ║ Nov 2005 ║
║ ║ ║ 3.0 ║ 2.0 ║ Nov 2006 ║
║ 3.0 ║ 2008 ║ 3.5 ║ 2.0 ║ Nov 2007 ║
║ 4.0 ║ 2010 ║ 4.0 ║ 4 ║ Apr 2010 ║
║ 5.0 ║ 2012 ║ 4.5 ║ 4 ║ Aug 2012 ║
║ 5.0 ║ 2013 ║ 4.5.1 ║ 4 ║ Oct 2013 ║
║ ║ ║ 4.5.2 ║ 4 ║ May 2014 ║
║ 6.0 ║ 2015 ║ 4.6 ║ 4 ║ Jul 2015 ║
║ ║ ║ 4.6.1 ║ 4 ║ Nov 2015 ║
║ ║ ║ 4.6.2 ║ 4 ║ Aug 2016 ║
║ 7.0 ║ 2017 ║ ║ ║ Mar 2017 ║
║ ║ ║ 4.7 ║ 4 ║ May 2017 ║
║ 7.1 ║ 2017(v15.3)║ ║ ║ Aug 2017 ║
║ ║ ║ 4.7.1 ║ 4 ║ Oct 2017 ║
║ 7.2 ║ 2017(v15.5)║ ║ ║ Dec 2017 ║
║ ║ ║ 4.7.2 ║ 4 ║ Apr 2018 ║
║ 7.3 ║ 2017(v15.7)║ ║ ║ May 2018 ║
╚════════════╩════════════╩══════════════╩═════════════╩══════════════╝
注意:.NET开发现在几乎与VS无关,每个版本之间没有相关性。参考: https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies更多。
C#1.0 使用Visual Studio.NET
C#2.0 使用Visual Studio 2005
C#3.0 使用Visual Studio 2008
C#4.0 使用Visual Studio 2010
C#5.0 使用Visual Studio 2012
C#6.0 使用Visual Studio 2015
C#7.0 使用Visual Studio 2017
版_____
语言规范______
MICROSOFT编译器
C# 1.0/1.2____
2001年12月?/ 2003?___________
2002年1月?
C#2.0_______
2005年9月________________
2005年11月?
C#3.0_______
2006年5月_____________________
2006年11月?
C#4.0_______
2009年3月(草案)______________
2010年4月?
C#5.0;于2012年8月与.NET 4.5一起发布
C#6.0;随.NET 4.6 2015发布
C#7.0;随.NET 4.7 2017发布
您可以查看最新的C#版本 这里
C#版本历史:
C#是Microsoft开发的一种简单而强大的面向对象编程语言。
自2002年首次发布以来,C#已经发展很多。随着.NET Framework 1.0引入了C#。
下表列出了每个C#版本中引入的重要功能。
最新版本的C#可用于 C#版本。
我已经总结了这个表中的大多数版本。唯一缺少的应该是ASP.NET Core版本。我还添加了不同版本的ASP.NET MVC。
请注意,ASP.NET 5已更名为ASP.NET Core 1.0,ASP.NET MVC 6已更名为ASP.NET Core MVC 1.0.0。我相信这种变化发生在2016年1月左右。
我在表中包含了ASP.NET 5 RC1的发布日期,但我还没有包含ASP.NET核心1.0和其他核心版本,因为我找不到确切的发布日期。您可以在此处阅读有关ASP.NET Core的发布日期的更多信息: 什么时候ASP.NET Core 1.0(ASP.NET 5 / vNext)计划发布?
比较MSDN文章 “C#2.0语言和编译器的新功能” 和“Visual C#2005中的新功能“,有可能推断出”C#major_version.minor_version“是根据编译器的版本编号创造的。
有 C#1.2对应于.NET 1.1和VS 2003 并且还命名为 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对应(或更准确地说,可以定位):