4

私は IT の専門家ではないので、何か明らかなことを見逃していたら申し訳ありません。

SettingsIniプログラムを作成するとき、キーと値のテキスト ファイルを読み取るクラスを追加します。この方法は、接続しているアプリケーションに関係なく、コードを変更せずに設定を追加または変更できるため、非常に柔軟です。これがメインのコードです。

Public Shared Sub Load()

    Using settingsReader As StreamReader = New StreamReader(System.AppDomain.CurrentDomain.BaseDirectory & "settings.ini")
        Do While settingsReader.Peek > -1
            Dim line As String = settingsReader.ReadLine
            Dim keysAndValues() As String = line.Split("="c)  
            settingsTable.Add(keysAndValues(0).Trim, keysAndValues(1).Trim)

            Loop
    End Using
End Sub


Public Shared Function GetValue(ByVal key As String)
    Dim value As String = settingsTable(key)
    Return value
End Function

これにより、メソッドを呼び出してコード内で設定を使用できますSettingsIni.GetValue

例えば:

watcher = New FileSystemWatcher(SettingsIni.GetValue("inputDir"), "*" & SettingsIni.GetValue("extn")).

これにより、コードが読みやすくなります。私の問題は、この場合の値inputDirextn、フリーハンドで入力され、インテリセンスによってチェックされないことです。アプリケーションの使用頻度の低いブランチでタイプミスをして、テスト中にそれを見逃すのではないかと常に心配しています。設定を取得するためのベスト プラクティスの方法はありますか? または、これらのチェックされていないフリーハンド型の値を回避する方法はありますか?

4

4 に答える 4

0

それは完全にあなた次第です。インテリセンスではなく、引用符内のほとんどすべてのものをチェックするのはあなたです。

しかし、あなたはまだTry-Catchブロックを使用しています:

Try
  Dim value As String = settingsTable(key)
  Return value
Catch ex As Exception
  MsgBox(ex.ToString)
  Return ""
End Try

したがって、タイプミスした可能性のある存在しない設定にアクセスしようとすると、メッセージボックスが表示されます。

于 2013-01-03T21:31:07.600 に答える
0

コード例のベスト プラクティスは、可能な設定に定数を使用することです。

Class Settings
    Const inputDir as String = "inputDir"
    Const extn as String = "extn"
End Class


watcher = New FileSystemWatcher(SettingsIni.GetValue(Settings.inputDir), "*" & SettingsIni.GetValue(Settings.extn))
于 2013-01-03T22:46:28.367 に答える
0

数値の場合、次の 3 つのことを行うことができます。

  1. 数値かどうかを確認 - IsNumeric 関数を使用
  2. 整数かどうかを確認します - 次のような Int 関数を使用します: if Int(number)=number
  3. 次のような有効な範囲を確認してください: if number>=lowerbound and number<=upperbound
于 2013-01-03T21:24:31.127 に答える
0

VB.NETを使用していると思いますか?もしそうなら、「私のプロジェクト」の下に便利な「設定」メニューがあります。プログラムの設定を保存し、「my.settings.YOURKEY」を介して取得する方法を提供します。利点は、タイプのセキュリティがこのレベルで強制されることです。さらに、ほぼ同じ方法で「リソース」を保存することもできますが、リソースは文字列や画像などに適しています。ただし、プログラムを翻訳したい場合は特に適しています。

現在の問題については、パスを設定に保存します。この方法では、コードをすべてすぐに変更する必要はありませんが、システムを使用してスペルを間違えることはありません。

于 2013-01-03T21:26:06.467 に答える