私は、xmlファイルから項目をデシリアライズし、すべての種類の素晴らしいことを行います。私はXMLファイルに2つの配列を持っています。一つはvariables
、もう一つはlookupTables
です。私はまた、2クラス、variable
とlookupTable
を持っています。これらのクラスはどちらもdefinition
というクラスから継承しています。 definition
は継承され、継承する必要のあるメソッドが1つあります(evaluate
)。ここでは、コードは次のとおりです。複数のオブジェクトタイプのリストを作成し、メソッド/プロパティを保持する方法は?
定義
Public MustInherit Class Definition
Public Sub New()
End Sub
<XmlAttribute("name")> _
Public Property name As String
Public MustOverride Function evaluate(variables As Dictionary(Of String, Double)) As Double
End Class
変数
<XmlRoot("variable")> _
Public Class Variable
Inherits Definition
<XmlAttribute("value")> _
Public Property value As String
Public Overrides Function evaluate(variables As Dictionary(Of String, Double)) As Double
Dim calculator As CalculationEngine = New CalculationEngine()
Return calculator.Calculate(value, variables)
End Function
End Class
ルックアップテーブル
<XmlRoot("lookupTable")> _
Public Class LookupTable
Inherits Definition
Public Sub New()
End Sub
<XmlElement("data")> _
Public Property data As Integer()()
Public Overrides Function evaluate(variables As Dictionary(Of String, Double)) As Double
Return True
End Function
End Class
私の質問は、(うまくいけば)非常に簡単です。 Defintion
のリスト(したがって、Variables
とLookupTables
の両方を含むリスト)を個々のメソッドとプロパティを失うことなく作成するにはどうすればよいですか。このリストを使用するために必要なのは、evaluate
です。
Variable
と
LookupTable
両方が
evaluate()
を実装するために保証されているが、私は読んで、リストの両方を型キャストすると、自分の内臓のそれらを除去し、
Definition
と共通である何onluy続けるだろうと思われるので、私はちょうど
List(Of Definition)
を作成できると思っていた
。私はここで何ができますか?
オブジェクトを定義にキャストしている間は、LookupTables/Variablesタイプへのアクセスが緩いですが、いつでもそれらをキャストして、必要に応じていつでも子タイプとしてアクセスできます。 –