有没有更好的方法来检索我的设置?

时间:2013-01-03 21:19:53

标签: vb.net

如果我错过了一些显而易见的事情,我不是一名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 个答案:

答案 0 :(得分:0)

如果这是一个数字你可以做这三件事:

  1. 使用IsNumeric函数
  2. 检查是否为数字
  3. 检查它是否为整数 - 使用Int函数,如:if Int(number)= number
  4. 检查有效范围,例如:if number> = lowerbound and number< = upperbound

答案 1 :(得分:0)

我假设您使用的是VB.NET? 如果是这样,“我的项目”下有一个方便的“设置”菜单。它提供了一种存储程序设置的方法,并通过“my.settings.YOURKEY”检索它们。优点是,在这个级别上强制执行类型安全。 此外,您还可以以相同的方式存储“资源” - 但资源更适合字符串/图片等。但如果您想翻译您的程序,它们特别好。

至于你目前的问题: 将路径存储在设置中,这样您就不需要立即更改代码,但是您可以使用系统并且不会拼错任何内容。

答案 2 :(得分:0)

完全取决于你。你可以检查引号内的几乎所有内容,而不是智能感知。

但你仍然使用Try-Catch阻止:

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

因此,如果您尝试访问可能输入错误的不存在的设置,您将收到一个消息框。

答案 3 :(得分: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))