在调试时,有没有办法判断一个对象是否是另一个实例?

Bob*_*orn 24 c# debugging visual-studio-2012

在调试时,我期待两个不同的类使用相同的对象实例.这两个对象的所有属性都相同,但它们是两个不同的实例.有没有办法在VS调试器中告诉它?

为了确定,我能够在课程中添加一个字段:

private string someId = Guid.NewGuid().ToString();
Run Code Online (Sandbox Code Playgroud)

然后,在调试时,我至少可以查看两个实例中每个实例的字段.有没有更好的方法不需要创建这个虚拟ID字段?

Wol*_*ang 51

调试时,在Locals窗口中,右键单击实例并选择"Make Object ID".

这将添加此实例唯一的编号,只要您在调试器中看到此实例(在工具提示和监视窗口中),就会显示该编号.

在此输入图像描述

在此输入图像描述


Ase*_*tam 5

Object.Equals方法(对象,对象)

编辑:要检查引用相等性,请使用ReferenceEquals

编辑2:调试时,转到调试菜单,窗口->立即窗口(智能应该在这里工作)和 ?Object.ReferenceEquals(obj1, obj2)

  • 使用ReferenceEquals,而不是Equals。 (3认同)