考虑以下简单代码:
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 以达到目的?
这是一个奇怪的请求,可能有更好的方法来解决它,但与计算机科学中的任何事情一样,您可以通过抽象层来解决这个问题:
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 设置为v1
andv2
的相同实例,AContainer
然后您可以引用v1.A
orv2.A
并且它们将始终具有 A 的相同实例。
更有可能您需要重新评估为什么需要v1
和v2
保持相同,而是使用相同的参考。