首页 > 解决方案 > .NET CLR 是否预先计算属性值?

问题描述

当我通过调试器运行 C# 代码时,计算的属性值似乎总是在我检查对象时显示。

例如

在此处输入图像描述

我想知道这是否仅在调试器中完成,或者 .Net 是否将其作为优化并可以检测属性何时更改,因为这会影响我如何使用和访问这些属性以避免多次执行计算。

即使进行复杂的计算,我也从未见过它不会在调试器中显示值。

标签: c#.net

解决方案


调试器正在调用.ToString()所有对象。在该函数中为每个对象实现的任何代码都会被执行,这可能意味着调试器看起来有一些内部信息,但实际上没有。

您可以通过在类中编写自己的.ToString()函数来确认这一点,看看会发生什么。


推荐阅读