c# - "Object allocation: LINQ method call"的含义

标签 c# rider

我使用 JetBrains Rider 在 C# 中进行编程。通常,Rider 会在我的代码中强调一些操作,例如下面的 list.Where LINQ 方法调用:

enter image description here

当我将鼠标光标放在Where 关键字上时,它会显示以下消息:

enter image description here

编译不会生成任何警告,Rider 本身也不会显示任何警告。但它的含义是什么?

最佳答案

亮点来自一个插件,“堆分配查看器”。

高亮部分用于通知您执行分配、装箱、拆箱等的代码。

这些东西可能对您来说意味着什么,但通常只有在您处理非常受限的执行环境或受限的执行配置文件时,例如低内存嵌入式系统或游戏编程,其中内存如果可以的话,您希望避免分配或垃圾回收。

如果您并不真正关心这个插件告诉您什么,您可以通过转到文件->设置->插件并搜索它来安全地禁用或从 Rider 中删除它。

编译器既不发出警告也不产生错误的原因是代码实际上是完全良性且没有问题的,但它有一些副作用,您可能希望避免这些副作用来代替上述情况。

关于c# - "Object allocation: LINQ method call"的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59353992/

相关文章:

c# - 支持更多日期/时间触发器的调度引擎

c# - 如何验证 RemoteCertificateValidationCallback 中的链?

c# - Windows 10 Creators Update 后 DateTimePicker 出现乱码

c# - 注释斜杠//缩进太左(Rider)

Project Rider 中的 TFS 支持/配置

c# - 无法抑制 Rider 中的 CA1307 警告

mercurial - 有没有办法在 JetBrains IDE 中查看我的分支中的所有更改?

c# - 如何自动化测试 Outlook Add-In?

c# - 升级 Json.NET 后如何恢复 int 反序列化行为?

nuget - 如何将从 NuGet Bootstrap 包下载到 wwwroot?