gpt4 book ai didi

c# - 由调试器引起时命中断点

转载 作者:行者123 更新时间:2023-11-30 17:23:12 24 4
gpt4 key购买 nike

当操作是由 Visual Studio 调试器引起时,有没有办法命中断点?例如,假设我有以下内容(我知道你不应该这样做,只是为了争论而使用它):

public class Test
{
int _X = -1;
public int X {
get { return ++_X; } //Breakpoint here
set { _X = value; }
}
}

和:

static void Main(string[] args)
{

Test t = new Test();
t.X = 1; //Breakpoint here
return;
}

如果在 Main 的断点处暂停,每次将鼠标指针“悬停”在“t.X”上(假设您启用了以下调试选项 - “启用属性评估和其他隐式函数调用”)或者您在“监视”窗口中评估属性 - 它会增加属性但属性的“get”访问器中的断点不会被击中。在更具体的上下文中重新提出问题 - 当调试器完成评估时,是否有办法在属性的“get”访问器中命中断点?

最佳答案

在对这个主题进行一些研究之后,我了解了 FuncEval,并且在阅读了很多关于 FuncEval 的内容之后,我被引导到以下文章: Stop Mid Func Eval, Nested Break States SteveJS先生。他在文章中解释说,从 VS2005 开始,如果计算是从“立即窗口”而不是“监视”或“快速监视”窗口完成的,则可能会遇到由 FuncEval 引起的断点。所以,在上面的例子中,输入

?t.X

在立即窗口中导致命中 get 访问器上的断点。

关于c# - 由调试器引起时命中断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2308556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com