Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当类(或对象)的任何成员调用_C#_.net_Visual Studio_Debugging_.net Framework Version - Fatal编程技术网

C# 当类(或对象)的任何成员调用

C# 当类(或对象)的任何成员调用,c#,.net,visual-studio,debugging,.net-framework-version,C#,.net,Visual Studio,Debugging,.net Framework Version,我目前正在调试我的应用程序。(.Net Framework 4.6.2) 我有一个类的实例,它在执行特定函数(调试时)时不知何故被修改。我现在想了解,是什么访问和更改了对象 void PerformCalculationWithObject(MyClass obj) { DoSomething(obj); // calls a lot of different operations // which sometimes modify

我目前正在调试我的应用程序。(.Net Framework 4.6.2) 我有一个类的实例,它在执行特定函数(调试时)时不知何故被修改。我现在想了解,是什么访问和更改了对象

 void PerformCalculationWithObject(MyClass obj)
 {
      DoSomething(obj); // calls a lot of different operations
                        // which sometimes modify obj, and sometimes not.
 }
但是这个类很大而且很复杂,很多函数都是在函数下面调用的

我知道我最大的问题是在这个遗留代码中缺乏良好的对象设计,这导致了这个问题


所以问题是,如果有自动中断的可能性,当调用类的某个成员(甚至可能只是从特定实例调用)时(没有放置大量中断点).

在这种情况下,我通常会使用get和set方法将类成员变量更改为属性,然后在set方法中设置断点。

如果使用VS 2019和.NET Core 3.0,则可以从监视窗口对对象设置数据断点。只需在“监视”窗口中的表达式上单击鼠标右键(在本例中,为
obj
添加一个监视),然后选择“值更改时中断”

有关这方面的更多信息,请访问:


我很感激这可能对您调试遗留应用程序没有帮助,但也许它可以在调试时运行.NET Core 3,或者其他用户会发现这个答案很有用。

这正是我想要避免的,因为有很多可能性,而且经常会遇到这个问题。这实际上就是我想要的。然而,在我看来,它不适用于.NETFreamWork,只适用于.NETCore。你是对的。它仅适用于.net core。让我更新一下答案来说明这一点。但总的来说,你用这个功能击中了neil,这就是我想要的——但是im.net框架。我将其标记为有用,并在我的问题中添加了关键字。也许有一天会有办法做到的。