我们有两个班级BasicRace& AdvancedRace。 AdvancedRace继承自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逐个遍历每个属性,否则我开始认为它无法完成?
答案 0 :(得分:2)
您不能将基类转换为子类(不能更改现有对象的类型),但可以创建从基类复制属性的子类的新实例
为您的类实现此操作的典型方法可能是:
AdvancedRace
中的构造函数,它接受BasicRace
参数并从中复制属性AdvancedRace
中的静态方法,它接受BasicRace
参数,创建具有复制属性的新对象,然后返回它值得注意的是,这将导致两个完全独立的对象(每种类型中的一个)完全没有关联 - AdvancedRace
对象中的更改不会反映在BasicRace
中反之亦然。