在调试时我试图将计算的中间结果保存到变量中,以便在满足断点条件时我可以检查该值.但是,C#编译器(或CLR)将该变量优化为未使用.我通过使变量成为类的公共字段来解决问题,但是我想知道是否有一个直接的解决方案来解决这个问题.
未选中"优化代码"复选框.构建配置是Debug.
编辑:发现它只影响迭代器中一些未使用的变量,这些变量通常最终会作为自动生成的迭代器类中的字段; 保留在不包含yield语句的块中作用域的未使用变量.
懒惰的选项是...... 使用该值,理想情况是以不允许它保存在堆栈上的方式.例如:
var tmp = SomeMethod();
// your other code
Debug.WriteLine(tmp);
Run Code Online (Sandbox Code Playgroud)
使用值作为参数意味着必须保留它,但该行自动不会编译为发布版本.
然而!我必须强调的是,本地人总是保留在未经优化/调试的版本中,所以我从难以想象的问题中找到了这个场景.
归档时间: |
|
查看次数: |
6238 次 |
最近记录: |