从 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 集合,即当您尝试使用它时它不会崩溃
我在 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 集合,即当您尝试使用它时它不会崩溃