调试时,我期待两个不同的类使用相同的对象实例。这两个对象的所有属性都相同,但它们是两个不同的实例。有没有办法在VS调试器中告诉它?
为了确定,我能够在课堂上添加一个字段:
private string someId = Guid.NewGuid().ToString();
然后,在调试时,我至少可以查看两个实例中每个实例的字段。有没有更好的方法不需要创建这个虚拟ID字段?
答案 0 :(得分:45)
调试时,在Locals窗口中,右键单击实例并选择“Make Object ID”。
这将添加此实例唯一的编号,只要您看到此编号,就会显示该编号 调试器中的实例(在工具提示中以及在监视窗口中)。
答案 1 :(得分:5)
Object.Equals Method (Object, Object)
编辑:要检查参考相等性,请使用ReferenceEquals
编辑2:调试时,转到调试菜单,窗口 - >即时窗口(intellisense应该在这里工作)和?Object.ReferenceEquals(obj1, obj2)
答案 2 :(得分:1)
除了上面的答案,你还可以比较指针。如果您有两个对象obj1
和obj2
,则可以使用&obj1
和&obj2
检查(例如在观看窗口中)他们的地址。
请注意,对象可能会被.NET运行时移动,因此对同一对象进行两次地址检查,并在其间执行某些代码,这可能会导致不同的地址。