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
これはすでに大きな飛躍でしたが、今では他のクラスでこれらの定数を使用できるようにする必要がある立場にいます。それらをグローバルクラスに移動することを躊躇していますが、別のオプションが表示されません。
グローバル定数はどこに行きますか?