-1

次の簡単なコードを考えてみましょう。

Dim v1 as A
Dim v2 as A

v1 = new A
v2 = v1

v1 = new A

このコードは、2つの異なるオブジェクトを参照するv1とv2につながります。

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

v1これで、とv2を同じインスタンスに設定するだけで、またはをAContainer参照でき、それらは常にAの同じインスタンスを持ちます。v1.Av2.A

多くの場合、必要な理由を再評価し、同じである必要がありv1v2代わりに同じ参照を使用する必要があります。

于 2013-01-24T17:58:18.953 に答える