私は状況に完全に行き詰まっており、ここからどこへ行くべきかわかりません. 私は非常に大規模なプロジェクトを作成しているので、私の目標は、コード自体をできるだけきれいに保ち、できるだけ多くのハックを混在させないようにすることです。
これが状況です。
というクラスがありWoo_Type
ます。これは、多くの派生クラスの親です。
Public MustInherit Class Woo_Type
Private Shared TypeList As New Dictionary(Of String, Woo_Type)
Public MustOverride Sub SetValue(ByVal val As Object)
Public MustOverride Function GetValue() As Object
Public Shared Function GetTypeFromName(ByVal name As String) As Woo_Type
Return TypeList(name)
End Function
Public Shared Sub AddType(ByVal name As String, ByVal def As Woo_Type)
TypeList.Add(name, def)
End Sub
End Class
Woo_Type
これと同様の構造を持つ継承元のクラスがたくさんあります。
Public Class Woo_tpInt
Inherits Woo_Type
Private value As Integer = 0
Public Overrides Function GetValue() As Object
Return value
End Function
Public Overrides Sub SetValue(val As Object)
value = val
End Sub
End Class
次のようなことができるようになりたいです。
Woo_Type.GetTypeFromName("int")
そして、クラスか何かのようなものを返してもらいます...
この時点で、私は自分が何を望んでいるのかについて本当に混乱しており、誰かが何か提案をしているかどうかわかりませんでした. 正しく機能することを確認するためGetTypeFromName
に、 Initializer サブに次のものを用意しました。
Public Sub InitializeTypes()
Woo_Type.AddType("int", Woo_tpInt)
Woo_Type.AddType("String", Woo_tpInt)
End Sub
しかし、それも明らかにうまくいかないことにすぐに気付きました。
これは紛らわしいように思えるかもしれませんが、基本的に、すべてが機能するようにこれをより適切に構造化する方法を考えています...