C#7.2 新增功能
C# 7.2 又是一个单点版本,它增添了大量有用的功能。 此版本的一项主要功能是避免不必要的复制或分配,进而更有效地处理值类型。
C# 7.2 使用语言版本选择配置元素来选择编译器语言版本。
利用 7.2 中引入的语言功能,可在使用引用语义时处理值类型。 它们旨在尽量减少值类型的复制,而不造成与引用类型使用相关的内存分配,进而提升性能。 功能包括:
- 针对实参的
in
修饰符,指定形参通过引用传递,但不通过调用方法修改。 将in
修饰符添加到参数是源兼容的更改。 - 针对方法返回的
ref readonly
修饰符,指示方法通过引用返回其值,但不允许写入该对象。 如果向某个值赋予返回值,则添加ref readonly
修饰符是源兼容的更改。 将readonly
修饰符添加到现有的ref
返回语句是不兼容的更改。 它要求调用方更新ref
本地变量的声明以包含readonly
修饰符。 readonly struct
声明,指示结构不可变,且应作为in
参数传递到其成员方法。 将readonly
修饰符添加到现有的结构声明是二进制兼容的更改。ref struct
声明,指示结构类型直接访问托管的内存,且必须始终分配有堆栈。 将ref
修饰符添加到现有struct
声明是不兼容的更改。ref struct
不能是类的成员,也不能用于可能在堆上分配的其他位置。
可以在编写安全高效的代码中详细了解所有这些更改。
方法调用现可使用位于位置参数前面的命名参数(若这些命名参数的位置正确)。 有关详细信息,请参阅命名参数和可选参数。
C# 7.0 中实现了对数字分隔符的支持,但这不允许文字值的第一个字符是 _
。 十六进制文本和二进制文件现可以 _
开头。例如:
int binaryValue = 0b_0101_0101;
新的复合访问修饰符:private protected
指示可通过包含同一程序集中声明的类或派生类来访问成员。 虽然 protected internal
允许通过同一程序集中的类或派生类进行访问,但 private protected
限制对同一程序集中声明的派生类的访问。
有关详细信息,请参阅语言参考中的访问修饰符。
ref var r = ref (arr != null ? ref arr[0] : ref otherArr[0]);
变量 r
是对 arr
或 otherArr
中第一个值的引用。
有关详细信息,请参阅语言参考中的条件运算符 (?:)。
成在管理,败在经验;嬴在选择,输在不学! 贵在坚持!
个人作品
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联系。共同交流、互相学习。
如果您觉得文章对您有帮助,请点击文章右下角【推荐】。您的鼓励是作者持续创作的最大动力!