将新实例分配给其他实例

问题描述 投票:0回答:1

我正在尝试在 VB.NET 中做这样的事情:

Class Something()

    Sub New()
        Me = OtherThing       'Other instance of the same class 
    End Sub

End Class

在对象初始化期间,我想将类的当前实例与该类的先前初始化实例进行切换。我需要控制创建的实例。

在我的代码模块中,只是尝试像这样使用它:

暗淡的东西=新的东西

我已经尝试了 Me、MyBase、MyClass 的所有变体。尝试返回正确实例的函数等等。 不想使用工厂或初始化分配后:

暗淡的东西=新的东西

暗淡的东西=其他东西

可以吗?

vb.net oop initialization instance
1个回答
0
投票

您可以做一些稍微不同的事情并使类可克隆。 我们可以使用从

MemberwiseClone
继承的函数
Object
并返回一个
Object
。因此我们必须投射结果。

Public Class Something
    Public Function Clone() As Something
        Return DirectCast(MemberwiseClone(), Something)
    End Function
End Class

使用方法

Dim something As New Something()
Dim otherThing As Something = something.Clone()
© www.soinside.com 2019 - 2024. All rights reserved.