加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

跟踪C#中的实例?

发布时间:2020-12-15 22:16:59 所属栏目:百科 来源:网络整理
导读:参见英文答案 When debugging,is there a way to tell if an object is a different instance?????????????????????????????????????3个 有没有办法在调试时跟踪Visual Studio中C#/ .NET中的单个实例?我发现它有时会非常有用. 查看它的另一种方法是实例上的
参见英文答案 > When debugging,is there a way to tell if an object is a different instance?????????????????????????????????????3个
有没有办法在调试时跟踪Visual Studio中C#/ .NET中的单个实例?我发现它有时会非常有用.

查看它的另一种方法是实例上的断点而不是代码.因此,每次访问和/或修改我的实例时,执行都会停止,并且我会看到访问/修改我的实例的代码行.

在C中,等价将监视实例所在的内存块,或者仅仅是指向实例的指针.这种方法不适用于托管代码,因为.NET中的对象被移动,因此我需要C中指针的等价.

我知道C#中的WeakReferences但我不确定它们在调试时是否有用?

EDIT1:
这个问题不同于“在调试时,有没有办法判断一个对象是否是一个不同的实例?”因为我对比较两个引用不感兴趣,但我想访问一个对象.

解决方法

没有任何我知道的开箱即用,但VS确实支持条件断点.一种选择是:

>在您感兴趣的班级的所有方法上放置断点
>调试代码,直到遇到第一个代码
>找到实例的HashCode
>使GetHashCode()上的所有断点成为先前检索的哈希码
>让应用程序继续运行,直到再次遇到断点
>查看“调用堆栈”窗口,查看调用方法的代码行

有点笨重,但会工作……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读