我来自C++背景,如果这是一种非C#思考方式,请见谅,但我只需要知道。
在C++中,如果我有两个指针,我想知道它们是否指向同一件事物,我可以查看内存/监视窗口并查看它们的值-看它们是否指向相同的内存空间。
在C#中,我没有找到类似的东西。 一个具有完全相同值的引用类型实际上可能是完全相同的对象,也可能是完全不同的东西。
是否有一种方法让我在C#中查看这种信息?也许有某种等效于&运算符的监视窗口或类似的东西吗?
我来自C++背景,如果这是一种非C#思考方式,请见谅,但我只需要知道。
在C++中,如果我有两个指针,我想知道它们是否指向同一件事物,我可以查看内存/监视窗口并查看它们的值-看它们是否指向相同的内存空间。
在C#中,我没有找到类似的东西。 一个具有完全相同值的引用类型实际上可能是完全相同的对象,也可能是完全不同的东西。
是否有一种方法让我在C#中查看这种信息?也许有某种等效于&运算符的监视窗口或类似的东西吗?
static void Main(string[] args)
{
var x = "a string";
var y = x;
System.Diagnostics.Debugger.Break();
}
步骤1-右键单击并选择“创建对象ID”
步骤2-实例现在显示为带有1#后缀的形式。注意:在此步骤中,我没有做任何特殊的事情。点击“创建对象ID”后,由于它们引用同一实例,两个行立即更新以显示1#后缀。
步骤3-随时通过将1#添加到监视窗口来查看它们
你可以使用 Immediate Window 并使用 Object.ReferenceEquals(obj1, obj2) 来测试一下!