c# - .NET CLR 是否预先计算属性值?
问题描述
当我通过调试器运行 C# 代码时,计算的属性值似乎总是在我检查对象时显示。
例如
我想知道这是否仅在调试器中完成,或者 .Net 是否将其作为优化并可以检测属性何时更改,因为这会影响我如何使用和访问这些属性以避免多次执行计算。
即使进行复杂的计算,我也从未见过它不会在调试器中显示值。
解决方案
调试器正在调用.ToString()
所有对象。在该函数中为每个对象实现的任何代码都会被执行,这可能意味着调试器看起来有一些内部信息,但实际上没有。
您可以通过在类中编写自己的.ToString()
函数来确认这一点,看看会发生什么。
推荐阅读
- powershell - 如何编写一个 Powershell 脚本来检查上次将文件添加到文件夹的时间?
- python - 关于删除 numpy 代码中的嵌套循环的建议,包括条件和屏蔽数据
- c# - 如何级联删除?
- laravel - 即使会话过期,Laravel API 调用也会继续
- google-maps - 嵌入谷歌地图时如何将一个地方显示为活动?
- c# - 在 List 中创建新的模型数组
包含每四个索引中的值 - r - cudNN lstm的GPU内存使用和加速
- python-3.x - 需要从 2 个日历函数中获取值,找到差异并将其存储在标签小部件中
- javascript - Python Selenium:单击带有 JavaScript onFocus 验证的按钮
- tensorflow - 在基本的 Mnist keras 示例中,所有权重都变为 NaN