如何检测代码中的装箱/取消装箱

本文关键字:取消装箱 代码 何检测 检测 | 更新日期: 2023-09-27 18:20:47

我很想在解决方案中找到装箱或取消装箱的所有位置。我知道我可以这样使用ildasm:

Ildasm.exe yourcomponent.dll /text | findstr box

但我不想看MSIL级别。有简单的方法吗?

如何检测代码中的装箱/取消装箱

Clr堆分配分析器是一个免费的Visual Studio插件,它可以检测许多(但不是所有)形式的装箱,并将突出显示源代码并提供工具提示解释。

您还可以使用Visual Studio诊断工具来分析内存分配。这不会直接显示装箱,但每当你在堆上看到一个值类型时,你就会知道它已经装箱了(例如,你会看到对Int32的引用占用了12个字节)。

您可以使用FXCOP:(带示例的旧文章)

链接-三个重要的FXCop规则

这是#Roslyn的完美用例微软和Jon Skeet一如既往地推出的编译器即服务是绝对正确的。我正在写一本关于Roslyn的书,展示如何使用Roslyn进行此类代码分析,并通过JavaScript进行一些引人注目的可视化。

这是用于查找装箱调用的代码。然而,范围解析发挥了作用。但是这个例子应该让你开始。预购您的副本以在https://www.amazon.com/Source-Analytics-Roslyn-JavaScript-Visualization/dp/1484219244?ie=UTF8&版本=1&条目=0

https://gist.github.com/sudipto80/43efdecb878cac17b340cda2c281c3b3