例として、分析/ユーザーへの出力が必要なデータベース内の日付の大規模なセットのレストランのセットに関する大量のデータがあるとします。
したがって、私のコードでは、日付ごとに各レストランのデータを保持するカスタム クラスがあります。たとえば、次のようになります。
Public Class DateData
Public Property Var1 As Double = 0
Public Property Var2 As Double = 0
Public Property Var3 As Double = 0
Public Property Var4 As Double = 0
Public Sub Sub1()
....
End Sub
... etc ....
End Class
そして、私は各日付のこのデータを取得しているので (そして日付の順序は私の計算にとって重要なので)、次のクラスも設定しています (ほとんどの作業/計算が行われる場所):
Public Class RestaurantData
Inherits SortedDictionary(Of Date, DateData)
Public Property Name As String
Public Property RestaurantLevelData1 As Double = 0
Public Property RestaurantLevelData2 As Double = 0
Public Sub New(ByVal strName As String, ByVal DatesList As List(Of Date))
_Name = strName
For Each daDate As Date In DatesList
Me.Add(daDate)
Next
End Sub
Public Overloads Sub Add(ByVal daDate As Date)
MyBase.Add(daDate, New DateData)
End Sub
Public Sub Sub1()
For i As Integer = 0 To Me.Keys.Count - 1
Dim daDate As Date = Me.Keys(i)
Me(daDate).Sub1()
.... etc ....
Next
End Sub
... etc ....
End Class
最後に、これは多数のレストラン向けであるため、この Dictionary をレストランレベルで保持するクラスがあります。たとえば、次のようになります。
Public Class RestaurantsDict
Inherits Dictionary(Of String, RestaurantData)
Public Overloads Sub Add(ByVal strName As String, ByVal Dates As List(Of Date))
MyBase.Add(strName, New RestaurantData(strName, Dates))
End Sub
End Class
さて、これを設定したので、主な質問が 2 つあります。
これはこれを設定する良い方法ですか?私の元のコードは数十個で構成されていましたが
Dictionary(Of String, SortedDictionary(Of Date, Double))
、私はかなり初心者のプログラマであり、達成しようとしているものに対してより効率的なアーキテクチャがあるかどうかを知りたいと思っています.私が現在これを設定している方法は、デバッグが非常に困難です。たとえば、
Count
my のプロパティRestaurantData
は type の例外をスローしますSystem.TypeLoadException
。
全体として、このソリューションは完全にうまく機能していますが、より良い .Net & OOP プログラマーになる方法について、これから学びたいと思います。
ありがとう!