如何确定不同范围内两个变量的引用相等?

Dav*_*vid 7 c# debugging visual-studio-2010 visual-studio-debugging

假设您正在调试.有一次你在方法A中,它有一个类型的参数foo Foo.稍后你在方法B,它也采用类型的参数foo Foo.

这两个变量可能是同一个Foo实例,但你怎么说呢?因为他们在不同的范围,你不能打电话ReferenceEquals().有没有什么方法可以获得变量指向的实际内存位置,以便您可以判断它们是否是实例?

Cod*_*ked 6

我相信你可以使用这个Make Object ID功能.有关这方面的更多信息可以在这里找到,但总结一下:

  1. 在代码中设置BreakPoint,您可以在其中获取范围内的对象变量.
  2. 运行您的代码,让它停在BreakPoint.
  3. 在"局部"或"自动窗口"窗口中​​,右键单击对象变量(请注意"值"列),然后从上下文菜单中选择"生成对象ID".
  4. 您现在应该在"值"列中看到新的ID号(#)new.

在"标记"对象后,您将在第二次调用Foo时看到分配的ID.