C的正确版本号是什么?

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

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

C语言版本历史记录:

以下是撰写本文时已知的C#版本:

  • C#1.0与.NET 1.0和VS2002一起发布(2002年1月)
  • C#1.2(很奇怪);与.NET1.1和VS2003一起发布(2003年4月)。在IEnumerators上调用Dispose的第一个版本,它实现了IDisposable。其他一些小功能
  • C#2.0与.NET 2.0和VS2005一起发布(2005年11月)。主要的新特性:泛型、匿名方法、可空类型和迭代器块
  • C#3.0与.NET 3.5和VS2008一起发布(2007年11月)。主要的新特性:lambda表达式、扩展方法、表达式树、匿名类型、隐式类型(var)和查询表达式
  • C#4.0与.NET 4和VS2010一起发布(2010年4月)。主要新特性:后期绑定(动态),委托和接口通用变量,更多COM支持,命名参数,元组数据类型和可选参数
  • C#5.0与.NET 4.5和VS2012一起发布(2012年8月)。主要功能:异步编程和调用方信息属性。中断更改:循环变量闭包
  • C#6.0与.NET 4.6和VS2015一起发布(2015年7月)。由罗斯林实施。功能:自动实现属性的初始值设定项,使用指令导入静态成员、异常筛选器、元素初始值设定项、catch中的wait最终,扩展在集合初始值设定项中添加方法
  • C#7.0与.NET 4.7和VS2017一起发布(2017年3月)。主要的新特性:元组、ref-locals和ref-return、模式匹配(包括基于模式的switch语句)、内联out参数声明、本地函数、二进制文本、数字分隔符和任意异步返回
  • C#7.1与VS2017 v15.3一起发布(2017年8月)。新特性:异步main、元组成员名称推断、默认表达式和与泛型的模式匹配
  • C#7.2与VS2017 v15.5一起发布(2017年11月)。新功能:私有保护访问修改器,Span<T>,又名内部指针,又名stackonly结构,以及其他一切
  • C#7.3与VS2017 v15.7一起发布(2018年5月)。新功能:枚举、委托和非托管泛型类型约束参考重新分配。不安全的改进:stackalloc初始化、未固定索引的fixed缓冲区、自定义fixed语句。改进的重载分辨率。初始值设定项和查询中的表达式变量=和=为元组定义。自动属性的备份字段现在可以通过属性作为目标
  • C#8.0与.NET Core 3.0和VS2019 v16.3一起发布(2019年9月)。主要的新特性:可空引用类型、异步流、索引和范围、只读成员、使用声明、默认接口方法、静态本地函数以及增强插值逐字字符串
  • C#9.0与.NET 5.0和VS2019 v16.8一起发布(2020年11月)。主要新功能:仅初始化属性、记录、带表达式、数据类、位置记录、顶级程序、改进的模式匹配(简单类型模式、关系模式、逻辑模式)、改进的目标类型(目标类型表达式、目标类型),和协变收益。次要功能:放宽refpartial修饰符的顺序、参数null检查、lambda丢弃参数、本机ints、本地函数属性、函数指针、静态lambda、扩展GetEnumerator、模块初始值设定项和扩展partial

针对OP的问题:

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

没有像C#3.5这样的东西——这里引起混淆的原因是C#3.0出现在.NET3.5中。但是,该语言和框架的版本是独立的,CLR的版本也是独立的,在.NET 2.0到3.5版本中,CLR的版本是2.0,.NET 4引入了CLR 4.0,尽管有service Pack。NET 4.5中的CLR有各种改进,但版本控制尚不清楚:在某些地方,它可能被称为CLR 4.5(例如,此MSDN页面用于以这种方式引用它),但环境。Version属性仍然报告4.0.xxx

截至2017年5月3日,C语言团队在其GitHub存储库中创建了C语言版本和功能的历史记录:在C语言版本中添加的功能。还有一个页面跟踪即将推出的和最近实现的语言特性

发表评论