考虑以下简单代码:
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来制作技巧?
答案 0 :(得分: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
现在您只需将v1
和v2
设置为AContainer
的同一个实例,然后您可以引用v1.A
或v2.A
,他们将始终拥有A的相同实例。
您更有可能需要重新评估为什么需要v1
和v2
相同,而是使用相同的参考。