我有一个MustInherit
Parent类,它有两个从Parent继承的Child类。
如何在Parent函数中使用(或Cast)Me
作为该实例的子类型?
编辑:我的目标是能够序列化(BinaryFormatter.Serialize(Stream, Object)
)我的子课程。但是,每个孩子的“重复代码”似乎“错误”。
EDIT2:这是我的序列化功能。我应该在哪里实现这个功能?复制和粘贴给每个孩子看起来似乎不对,但将父母送给孩子似乎也不对。
Public Function Serialize() As Byte()
Dim bFmt As New BinaryFormatter()
Dim mStr As New MemoryStream()
bFmt.Serialize(mStr, Me)
Return mStr.ToArray()
End Function
答案 0 :(得分:0)
回答你的问题:正如你要施放普通物体一样:
If TypeOf Me Is ChildClass1 Then
Dim x As ChildClass1 = DirectCast(Me, ChildClass1)
....
End If
但是,在Parent
的代码中进行此类演员被视为非常糟糕的做法。请看一下Template pattern,它可能更适合你需要的东西,它比做这样的演员阵容更清晰。