读取对象的内存地址

时间:2009-05-04 19:43:52

标签: vb.net memory

我正在尝试将业务对象从一个WinForm传递到另一个WinForm进行修改,然后使用更新的值重新填充第一个表单上的文本框等。

但是,当代码控件返回第一个表单时,似乎第二种形式中设置的对象值不会“粘滞”。

有没有办法在VB.NET中查看对象的内存位置?我想首先确保第二个窗体上的对象变量指向与第一个窗体上的对象相同的内存地址。然后我可以从那里拿走它。

在一个单独的VB项目中,我将一个简单的对象传递给第二个窗体,修改了值,并在第一个窗体上重新显示了对象的值。它工作正常。在我的真实应用程序中,我传递的是另一个对象属性的对象,这可能就是它无法正常工作的原因。

解决方案:问题在于我使用了DeepCopy()函数,我发现它可以简化将一个对象的属性复制到另一个对象的属性。删除该函数并手动将值设置为第二个表单上的传递对象(例如obj.property1 = searchResult.property1)使一切都按预期运行。

1 个答案:

答案 0 :(得分:3)

您无法在VB.NET中看到对象的内存地址。

你能告诉我们一些代码吗?也许我们可以发现错误。

你在路过什么样的物体?如果对象是值类型,则不起作用(使用Structure而不是Class声明)。