“对象分配:LINQ方法调用的含义”

问题描述 投票:0回答:2

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

enter image description here

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

enter image description here

编译不会生成任何警告,Rider本身也不会显示任何警告。但是那是什么意思呢?

c# rider
2个回答
0
投票

因为您正在实现集合(即.ToList()),它只是通知您,当您不进行[[需要时(即通过删除将其保留为IEnumerable)将分配内存来存储新集合。 ToList())


0
投票
重点来自插件“堆分配查看器”。

这里的重点是通知您进行分配,装箱,拆箱等的代码。>>

这些东西

可能

对您来说意味着什么,但通常仅在您要处理非常受限的执行环境或受限的执行配置文件(例如低内存嵌入式系统或游戏编程)时使用,其中内存分配或垃圾回收如果可以的话,您要避免这些。如果您不太在意此插件的内容,可以通过转到File-> Settings-> Plugins并搜索它来从Rider中安全地禁用或删除它。

编译器既不警告也不产生错误的原因是,该代码实际上是完全良性且没有问题的,但是它具有一些副作用,您可能需要代替上面描述的情况。

© www.soinside.com 2019 - 2024. All rights reserved.