我有这行代码:

this.Path = pathLookUpLocation.GetValue(RegLookupKey, null).ToString();

当我在代码上运行静态分析工具(Coverity)时,我在这里得到一个FORWARD_NULL,表示我在这里取消引用null。我在理解这意味着什么以及如何解决该问题时遇到了麻烦。

this.Path是字符串,pathLookUpLocation是RegistryKey,RegLookupKey是字符串。

最佳答案

我想pathLookUpLocationRegistryKey类型。

出现此消息的原因是,如果找不到由NullReferenceException指定的键值,则您的代码将抛出RegLookupKey。发生这种情况是因为您将null作为第二个参数传递给 GetValue 。第二个参数是找不到密钥时返回的默认值。

通过将其更改为string.Empty进行修复:

this.Path = pathLookUpLocation.GetValue(RegLookupKey, string.Empty).ToString();

08-05 18:01