代码之家  ›  专栏  ›  技术社区  ›  HardCode

读取对象的内存地址

  •  0
  • HardCode  · 技术社区  · 15 年前

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

    但是,当代码控件返回到第一个窗体时,在第二个窗体中设置的对象值似乎没有“粘在”上。

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

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

    解决方案:问题是我使用了deepcopy()函数,我发现它可以简化将一个对象的属性复制到另一个对象的过程。删除该函数并手动将值设置为第二个窗体(例如obj.property1=searchresult.property1)上传递的对象,可以使所有内容都按预期工作。

    1 回复  |  直到 15 年前
        1
  •  3
  •   Denis Troller    15 年前

    在VB.NET中看不到对象的内存地址。

    你能给我们看一点代码吗?也许我们能发现错误。

    你要传递什么样的物体?如果对象是值类型,则这将不起作用(用结构而不是类声明)。