是否可以在.NET中创建变量别名?

时间:2013-01-24 16:10:24

标签: .net alias

考虑以下简单代码:

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来制作技巧?

1 个答案:

答案 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

现在您只需将v1v2设置为AContainer的同一个实例,然后您可以引用v1.Av2.A,他们将始终拥有A的相同实例。

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