如何解决C# 7.2中的结构体性能问题

技术如何解决C# 7.2中的结构体性能问题本篇内容介绍了“如何解决C# 7.2中的结构体性能问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

本文介绍了关于“如何解决C# 7.2中的结构性能问题”的知识。很多人在实际案件操作中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!

在某些使用readonly关键字的情况下,C#编译器会创建该结构的防御副本。虽然这个问题众所周知并有记录,但仍然值得重新审视,因为它与C# 7.2的几个特性有关。in和ref readonly关键字的使用使得这个问题更频繁地发生,readonly结构提供了一个解决方案。

C#中的结构通常用于提高性能,减少分配和销毁内存的开销。然而,潜在的陷阱限制了它们的使用。C# 7.2增加了一个改进的只读结构来解决这个问题。

在以下情况下,C#编译器将创建该结构的副本:

结构不是只读的。

机构变量中使用了readonly修饰符。

调用方法(包括属性)。

如何解决C# 7.2中的结构体性能问题

当x是in参数、ref readonly局部变量或通过readonly引用返回值的方法调用的结果时,同样的规则适用。

public void BadFuncTion(insomstructs){ 0

南x;//编译器创建了一个防御副本。}C# 7.2增加了声明只读结构的可能性,并提供了一种避免创建防御性副本的解决方案。声明为readonly的结构不能有属性设置器,也不能向结构成员赋值。

我们可以通过静态分析来检测防御复制问题。ErrorProne.NET的灵感来自于一个Java静态分析工具——易错性。版本已迁移到。NET由一组罗斯林分析仪组成,它们专注于精度和性能。一些分析器适用于结构,并且可以以Nuget包的形式下载。

这里介绍一下“如何解决C# 7.2中的结构性能问题”的内容。感谢您的阅读。如果你想了解更多的行业,可以关注网站。边肖将为您输出更多高质量的实用文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/118938.html

(0)

相关推荐

  • adobe download manager 未响应(adobe download manager 停止工作)

    技术Adobe ColdFusion 任意命令执行漏洞的示例分析这篇文章将为大家详细讲解有关Adobe ColdFusion 任意命令执行漏洞的示例分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文

    攻略 2021年12月22日
  • 鼠标连击怎么办教你更换鼠标的微动!

    技术鼠标连击怎么办教你更换鼠标的微动! 鼠标连击怎么办教你更换鼠标的微动!前言
    作为一名合格的程序猿,
    机械键盘+酷炫的鼠标是标配
    键盘鼠标就像女人的包包,
    再穷也得整个好的!
    是作为一个高质量码农最基

    礼包 2021年11月24日
  • 如何理解.Net Core微信服务商二次进件的开发

    技术如何理解.Net Core微信服务商二次进件的开发这篇文章主要介绍“如何理解.Net Core微信服务商二次进件的开发”,在日常操作中,相信很多人在如何理解.Net Core微信服务商二次进件的开发问题上存在疑惑,小

    攻略 2021年10月23日
  • 对女生的称呼,男孩子如何称呼女孩子比较好

    技术对女生的称呼,男孩子如何称呼女孩子比较好虽然我们看不透人心对女生的称呼,但是我们可以用自己的心感受到谁对我们好,谁有对我们不好。看了一个像是段子又不是段子的调侃:喜欢你的时候,是亲爱的。不喜欢你的时候,是猪。想你的时

    生活 2021年10月22日
  • 数据库访问优化法则是什么

    技术数据库访问优化法则是什么本篇文章为大家展示了数据库访问优化法则是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  在网上有很多文章介绍数据库优化知识,但是大部份文章只是对

    攻略 2021年11月23日
  • VB.NET文件操作语法有哪些

    技术VB.NET文件操作语法有哪些这篇文章主要介绍VB.NET文件操作语法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.拷贝文件(FileCopy语句)格式:FileCopy(源文件名)

    攻略 2021年12月2日