【问题标题】:"Use the 'new' keyword to create an object instance" error in VB .NetVB .Net 中的“使用‘new’关键字创建对象实例”错误
【发布时间】:2014-07-14 21:52:37
【问题描述】:

我收到此错误“使用'new'关键字创建对象实例。(对象引用未设置为对象的实例。)” 我在这个论坛上检查了类似的问题,但找不到满意的答案。 我想要实现的是将字符串值 1 导入注册表子键 HKEY_CURRENT_USER\Software\MyApp\TEST

我在调试期间注意到的是,“regkey”似乎在所有使用它的行都设置为 Null。 我正在设置

regkey = Registry.LocalMachine.OpenSubKey("HKEY_CURRENT_USER\Software\MyApp\TEST", True) 

,还是不知道为什么 程序未获取值。

如何实现 New 关键字来创建对象实例? 我在程序的顶层使用“导入 Microsoft.Win32”。

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)  Handles Button1.Click
   Dim regkey As RegistryKey
   regkey = Registry.LocalMachine.OpenSubKey("HKEY_CURRENT_USER\Software\MyApp\TEST", True)
   regkey.SetValue("TEST", "1", RegistryValueKind.String)
   regkey.close()
 End Sub

【问题讨论】:

  • 好吧,您尝试使用 Registry.LocalMachine 打开 HKEY_CURRENT_USER 的子项,我敢打赌这会返回一个空引用

标签: vb.net


【解决方案1】:

您正在尝试打开不存在的HKEY_LOCAL_MACHINE\HKEY_CURENT_USER\Software\MyApp\TEST。因此,RegistryKey.OpenSubKey 返回null (Nothing)。

你应该

  1. 修复你的代码(Registry.CurrentUser.OpenSubKey("Software\...") 可能会做你想做的事),并且
  2. 在第 2 行和第 3 行之间添加一个空检查 (If regkey Is Nothing Then ...),以优雅地处理问题。

【讨论】:

  • 嗨 Heinzi 和 Steve,感谢您向我展示了这个错误。我按照您的指示进行了修改,并导入了注册表..
  • 嗨 Heinzi 和 Steve,感谢您向我展示了这个错误。我按照您的指示修改并导入了注册表.. [CODE] Dim regKey As RegistryKey regKey = Registry.CurrentUser.OpenSubKey("Software\Software\MyApp\TEST", True) regKey.SetValue("TEST", "1 ", RegistryValueKind.String) regKey.Close() [/CODE] Heinzi,就像你提到的那样,我也会添加空检查以防万一。
  • 如果 Heinzi 解决了您的问题,请标记答案。它可以帮助其他人找到类似的解决方案……除此之外。
猜你喜欢
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-11
  • 2023-04-05
  • 1970-01-01
相关资源
最近更新 更多