从 My.Settings 初始化 StringCollection 以避免空引用异常

Initializing a StringCollection from My.Settings to avoid null reference exception

我在 My.Settings 中指定了一个名为 MyCollection 的 System.Collections.Specialized.StringCollection,并且在第一次用于添加字符串时,抛出了空引用异常(即 MyCollection is Nothing)。

添加字符串的语法很简单:

My.Settings.MyCollection.Add(myString)

如果 StringCollection 在第一次使用时为 null,我如何从 My.Settings 初始化它?

My.Settings 中有关于 .NET Framework 冲突和 StringCollections 的报告。因此,我在项目的应用程序设置中指定了 .NET Framework 4.6。

您需要使用条件语句检查 StringCollection 是否 nothing

If (My.Settings.MyCollection Is Nothing) Then
    My.Settings.MyCollection = New System.Collections.Specialized.StringCollection() ' you probably won't need to fully qualify this, but I have it for visibility
End If
My.Settings.MyCollection.Add(myString)
  • 打开项目属性,设置,点击3个点按钮打开字符串集合编辑器。
  • 添加单个字符串并单击“确定”
  • 再次打开编辑器并删除您添加的字符串

现在您的设置网格应该如下所示:

而不是这个:

并且在运行时,您的设置将是一个包含 0 个条目的集合,而不是一个 Nothing 集合,即当您尝试使用它时它不会崩溃