name=value形式で大量のデータを吐き出すAPIを使用しています。最初は、単純な文字列比較を行ってすべてを処理しました。
Sub ProcessData(ByVal name As String, ByVal value As String)
If name = "thisname" Then
DoThis(value)
ElseIf name = "thatname" Then
DoThat(value)
End If
End Sub
しかし、処理する可能性のある20を超える名前があるため、これを維持するのはすぐに困難になりました。次のステップは、文字列をプライベートサブクラスで定義された定数に移動することでした。
Private Class Parameters
Private Sub New()
End Sub
Public Const ThisName As String = "thisname"
Public Const ThatName As String = "thatname"
End Class
そして、私のメソッドは次のようになります。
Sub ProcessData(ByVal name As String, ByVal value As String)
If name = Parameters.ThisName Then
DoThis(value)
ElseIf name = Parameters.ThatName Then
DoThat(value)
End If
End Sub
これはすでに大きな飛躍でしたが、今では他のクラスでこれらの定数を使用できるようにする必要がある立場にいます。それらをグローバルクラスに移動することを躊躇していますが、別のオプションが表示されません。
グローバル定数はどこに行きますか?