骑手:一旦字段更改就暂停执行

Rider: suspend execution once field changed

我正在调试大量遗留代码,其中包含巨大的文件大小、不良封装、混合继承等。

例如,有 class 和 _age 字段:

public class User
{
    private int _age;
    
    //...
}

有许多执行路径发生变化_age:通过属性、基础class、受保护的方法等。

一旦 _age 更改为检查堆栈跟踪,我如何才能暂停执行? IDE 不允许在此字段声明行上放置断点。我想知道 Rider IDE 是否有实现此目标的选项?或者也许有一些 practice/workaround 来实现它。

您要找的是数据断点。您可以找到有关如何使用它们的说明 here

显然,Rider 支持数据断点(请参阅其他答案),但如果它们不可用(例如 VS、旧版本的 .NET),您可以随时临时将字段更改为 属性喜欢:

private int _age 
{ 
     get; 
     set;
};

然后您可以照常设置断点(设置、获取或两者)。

您的声明“...通过基础 class、受保护的方法等。”让我有点困惑。如何通过派生的 class' 基访问私有字段?