我们有两个类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
中,反之亦然。