【问题标题】:Reading Object's Memory Address读取对象的内存地址
【发布时间】:2009-05-04 19:43:51
【问题描述】:

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

但是,当代码控制返回到第一种形式时,第二种形式中设置的对象值似乎没有“粘住”。

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

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

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

【问题讨论】:

    标签: vb.net memory


    【解决方案1】:

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

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

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

    【讨论】:

    • 我正要这么说。在 .NET 中,对象通常按照您描述的方式运行,HardCode。一些代码将有助于了解正在发生的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-08
    • 2015-03-26
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多