【发布时间】:2017-11-12 10:09:18
【问题描述】:
我正在编写一个 C# 应用程序。我有一些具有一些惰性属性的对象,当您请求它们的值时,它们实际上做了很多工作。
我希望能够在调试时检查它们是否被 Visual Studio 调试器调用,并且根本不执行它们。例如,当我单击具有这些属性的对象时,它根本不应该加载它们。
我该怎么做?
【问题讨论】:
-
使用断点查看调试器是否调用它们并在发布模式下使用#DEBUG 以完全不加载它们。
-
虽然我不完全确定你想要的东西不是(很容易)可行的,但我很确定即使你能做到它也没有用,你应该让你的生活更轻松,把函数内部的代码,而不是属性。 getter/setter 的副作用不是很好。
-
@rtur while true - 缓存值的属性(因此执行繁重的工作一次然后表现得像普通属性)是很常见的做法。
-
我绞尽脑汁,但不记得确切的名字。后来向 .NET 添加了一项功能,该功能可防止在属性执行危险代码时评估监视。 watch 表达式快速失败,而不是执行该代码。例如,对于线程同步原语很有用。我找不到它了,它很模糊,希望这能唤起别人的记忆。
-
@HansPassant 你可能在想
nse? blogs.msdn.microsoft.com/visualstudio/2017/06/26/…
标签: c# visual-studio debugging