将基类扩展到派生类



我们有两个类BasicRace &AdvancedRace。advancerace继承自BasicRace

我有一个BasicRace,但我想"转换"到高级类。

如下代码为例:

Module Module1
    Sub Main()
        Dim bRace As New BasicRace With {.CourseID = 1, .MeetingDate = "2013-05-01", .RaceNumber = 1}
        Dim aRace As New AdvancedRace
        ' Upgrade bRace to AdvancedRace???????
    End Sub
End Module
Public Class BasicRace
    Public Property MeetingDate As Date
    Public Property CourseID As Integer
    Public Property RaceNumber As Integer
End Class
Public Class AdvancedRace
    Inherits BasicRace
    Public Property RaceTitle As String
End Class

任何帮助将是伟大的-我开始认为它不能做,除非我写一个函数来转换一个basicRace到AdvancedRace通过每个属性一个接一个?

不能将基类"转换"为子类(不能更改现有对象的类型),但可以创建子类的新实例,该实例复制基类的属性。

为你的类实现这个的典型方法可能是:

  • AdvancedRace中的构造函数,它接受BasicRace参数并从中复制属性
  • AdvancedRace中的静态方法,它接受BasicRace参数,创建具有复制属性的新对象,然后返回它

值得注意的是,这将导致两个完全独立的对象(每种类型一个)根本没有链接- AdvancedRace对象中的更改不会反映在BasicRace中,反之亦然。

最新更新