C#各版本新增加功能(系列文章)
本系列文章主要整理并介绍 C# 各版本的新增功能与规范建议。
C# 规范建议
- 发布公告:https://devblogs.microsoft.com/dotnet/announcing-csharp-12
- C# 12 中的新增功能:https://learn.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-12
- .NET8:
C#11 向 C# 语言添加了以下功能和增强功能:
C# 9.0 向 C# 语言添加了以下功能和增强功能:
- 记录
- 仅限 Init 的资源库
- 顶级语句
- 模式匹配增强功能
- 本机大小的整数
- 函数指针
- 禁止发出 localsinit 标志
- 目标类型的新表达式
- 静态匿名函数
- 目标类型的条件表达式
- 协变返回类型
- 扩展
GetEnumerator
支持foreach
循环 - Lambda 弃元参数
- 本地函数的属性
- 模块初始值设定项
- 分部方法的新功能
.NET 5 支持 C# 9.0。 有关详细信息,请参阅 C# 语言版本控制。
具体新增功能请查看 C#9.0 新增功能
C#8.0 于 2019年4月 随 .NET Framework 4.8 与 Visual Studio 2019 一同发布,但是当前处于预览状态。预计在2019年9月正式发布。
目前提供以下功能可供试用:
- Readonly 成员
- 默认接口成员【*重要,突破性的变革*】请参考:C#8.0 中使用默认接口成员更新接口
- 模式匹配增强功能:Using 声明
- Switch 表达式
- 属性模式
- 元组模式
- 位置模式
- 静态本地函数
- 可处置的 ref 结构
- 可为空引用类型
- 异步流【*重要*】
- 索引和范围
具体新增功能请查看 C#8.0 新增功能
C#7.3 随 VS2017 v15.7 发布(2018年5月)。 自 Visual Studio 2017 版本 15.7 和 .NET Core 2.1 SDK 起,开始随附 C# 7.3。
具体新增功能请查看 C#7.3 新增功能
C#7.2 随 VS2017 v15.5 发布(2017年11月)。自 Visual Studio 2017 版本 15.5 和 .NET Core 2.0 SDK 起,开始随附 C# 7.2。
具体新增功能请查看 C#7.2 新增功能
C#7.1 随 VS2017 v15.3 发布(2017年8月)。 自 Visual Studio 2017 版本 15.3 和 .NET Core 2.0 SDK 起,开始随附 C# 7.1。
具体新增功能请查看 C#7.1 新增功能
C# 7.0 向 C# 语言添加了许多新功能:具体请查看 C#7.0 新增功能
具体功能请查看 C#6.0 新增功能
除了发布此版本,他们还做了另一件事,虽然这件事本身与传统的语言功能无关。 他们发布了 Roslyn 编译器即服务。 C# 编译器现在是用 C# 编写的,你可以使用编译器作为编程工作的一部分。
async
和 await
模型。C# 3.0 版和 Visual Studio 2008 一起发布于 2007 年下半年,但完整的语言功能是在 .NET Framework 3.5 版中发布的。 此版本标示着 C# 发展过程中的重大更改。 C# 成为了真正强大的编程语言。
下面列出的功能中大多数似乎都是不可或缺,难以分割的。 它们的组合都是经过巧妙布局。 我们通常认为 C# 版本的杀手锏是查询表达式,也就是语言集成查询 (LINQ)。LINQ 的构造可以建立在更细微的视图检查表达式树、Lambda 表达式以及匿名类型的基础上。 不过无论如何 C# 3.0 都提出了革命性的概念。 C# 3.0 开始为 C# 转变为面向对象/函数式混合语言打下基础。
微软于2005年11月发布了.NET Framework 2.0,同时发布了Visual Studio 2005,同步对应的C#升级到了2.0版本。
除现有功能以外的其他 C# 2.0 功能:
- 方法组转换(委托)
- 静态类
- 委托推断
随 Visual Studio 2003 一起提供的 C# 版本 1.2。 它对语言做了一些小改进。 最值得注意的是,从此版本开始,当 IEnumerator 实现 IDisposable 时,foreach
循环中生成的代码会在 IEnumerator 上调用 Dispose。
C# 1.0 的主要功能包括:
C#版本 |
发布时间 |
.NET 版本 |
VS版本 |
CLR版本 |
C#1.0 |
2002-02-13 |
.NET Framework 1.0 |
VS.NET 2002 |
1.0 |
C#1.1 |
2003-04-24 |
.NET Framework 1.1 |
VS.NET 2003 |
1.1 |
C#2.0 |
2005-11-07 |
.NET Framework 2.0 |
VS2005 |
2.0 |
C#3.0(除Linq) |
2006-11 |
.NET Framework 3.0 |
VS2008 |
2.0 |
C#3.0 |
2007-11-19 |
.NET Framework 3.5 |
VS2008 |
2.0 |
C#4.0 |
2010-4-12 |
.NET Framework 4.0 |
VS2010 |
4 |
C#5.0 |
2012-02-20 |
.NET Framework 4.5 |
VS2012 |
4 |
C#5.0 |
2013-10-17 |
.NET Framework 4.5.1 |
VS2013 |
4 |
C#5.0 |
2014-05-05 |
.NET Framework 4.5.2 |
VS2013 |
4 |
C#6.0 |
2015-07-26 |
.NET Framework 4.6 |
VS2015(v14) |
4 |
C#6.0 |
2015-11-30 |
.NET Framework 4.6.1 |
VS2015(v14) |
4 |
C#7.0 |
2016-08-02 |
.NET Framework 4.6.2 |
VS2017(v15) |
4 |
C#7.1 |
2017-04-05 |
.NET Framework 4.7 |
VS2017(v15.3) |
4 |
C#7.2 |
2017-10-17 |
.NET Framework 4.7.1 |
VS2017(v15.5) |
4 |
C#7.3 |
2018-04-30 |
.NET Framework 4.7.2 |
VS2017(v15.7) |
4 |
C#8.0 |
2019-04-18 |
.NET Framework 4.8 |
VS2019(v16) |
4 |
成在管理,败在经验;嬴在选择,输在不学! 贵在坚持!
个人作品
BIMFace.SDK.NET
开源地址:https://gitee.com/NAlps/BIMFace.SDK
系列博客:https://www.cnblogs.com/SavionZhang/p/11424431.html
系列视频:https://www.cnblogs.com/SavionZhang/p/14258393.html
技术栈
1、Visual Studio、.NET Core/.NET、MVC、Web API、RESTful API、gRPC、SignalR、Java、Python
2、jQuery、Vue.js、Bootstrap、ElementUI
3、数据库:分库分表、读写分离、SQLServer、MySQL、PostgreSQL、Redis、MongoDB、ElasticSearch、达梦DM
4、架构:DDD、ABP、SpringBoot、jFinal
5、环境:跨平台、Windows、Linux、Nginx
6、移动App:Android、IOS、HarmonyOS、微信小程序、钉钉、uni-app、MAUI
分布式、高并发、云原生、微服务、Docker、CI/CD、DevOps、K8S;Dapr、RabbitMQ、Kafka、RPC、Elasticsearch。
欢迎关注作者头条号 张传宁IT讲堂,获取更多IT文章、视频等优质内容。
出处:www.cnblogs.com/SavionZhang
作者:张传宁 技术顾问、培训讲师、微软MCP、系统架构设计师、系统集成项目管理工程师、科技部创新工程师。
专注于企业级通用开发平台、工作流引擎、自动化项目(代码)生成器、SOA 、DDD、 云原生(Docker、微服务、DevOps、CI/CD);PDF、CAD、BIM 审图等研究与应用。
多次参与电子政务、图书教育、生产制造等企业级大型项目研发与管理工作。
熟悉中小企业软件开发过程:可行调研、需求分析、架构设计、编码测试、实施部署、项目管理。通过技术与管理帮助中小企业实现互联网转型升级全流程解决方案。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如有问题,可以通过邮件905442693@qq.com联系。共同交流、互相学习。
如果您觉得文章对您有帮助,请点击文章右下角【推荐】。您的鼓励是作者持续创作的最大动力!