You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何初始化My.Settings中的StringCollection以避免空引用异常

解决方法

你可以通过以下两种方案处理首次使用时StringCollection为空的问题:

方案1:操作前即时判空初始化

在每次调用集合方法前先判断是否为空,为空则先实例化:

' 先判空初始化
If My.Settings.MyCollection Is Nothing Then
    My.Settings.MyCollection = New System.Collections.Specialized.StringCollection()
End If
' 执行添加操作
My.Settings.MyCollection.Add(myString)
' 持久化修改到配置文件
My.Settings.Save()

该方案适合仅在少数位置使用该集合的场景,无需额外配置全局逻辑。

方案2:程序启动时统一初始化

如果项目中多处会用到这个集合,可以在程序启动入口统一做一次初始化,避免重复写判空逻辑。以VB.NET为例,你可以在My.Application.Startup事件中添加如下代码:

Private Sub MyApplication_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup
    If My.Settings.MyCollection Is Nothing Then
        My.Settings.MyCollection = New System.Collections.Specialized.StringCollection()
        My.Settings.Save()
    End If
End Sub

完成初始化后,程序任意位置都可以直接调用My.Settings.MyCollection.Add(myString),不需要再单独判空。

注意事项

  • 所有对Settings的修改完成后都需要调用My.Settings.Save(),否则修改仅会保留在内存中,程序重启后会丢失。
  • 你已经将目标框架调整为.NET Framework 4.6,无需额外处理版本兼容问题。

内容的提问来源于stack exchange,提问作者user16594857

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 10:27:01