-1

考虑以下简单代码:

Dim v1 as A
Dim v2 as A

v1 = new A
v2 = v1

v1 = new A

此代码导致 v1 和 v2 引用 2 个不同的对象。

我正在寻找一种方法让 v2 ​​成为 v1 的别名,以便最终 v2 将引用与 v1 相同的对象。有没有一种特殊的方法可以将 v1 分配给 v2 以达到目的?

4

1 回答 1

1

这是一个奇怪的请求,可能有更好的方法来解决它,但与计算机科学中的任何事情一样,您可以通过抽象层来解决这个问题:

Public Class AContainer
    Private a As A
    Public ReadOnly Property A() As A
        Get
            Return a
        End Get
    End Property

    Public Sub New(ByVal value As A)
        a = value
    End Sub

    Public Sub Update(ByVal value As a)
        a = value
    End Sub
End Class

现在您只需将 and 设置为v1andv2的相同实例,AContainer然后您可以引用v1.Aorv2.A并且它们将始终具有 A 的相同实例。

更有可能您需要重新评估为什么需要v1v2保持相同,而是使用相同的参考。

于 2013-01-24T17:58:18.953 回答