取消引用null后FORWARD_NULL?

时间:2012-03-28 14:09:03

标签: c# static-analysis registrykey

我有这行代码:

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

当我在我的代码上运行静态分析工具(Coverity)时,我在这里得到一个FORWARD_NULL,说我在这里取消引用null。我无法理解这意味着什么以及如何修复它?

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

1 个答案:

答案 0 :(得分:5)

我认为pathLookUpLocation的类型为RegistryKey

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

通过将其更改为string.Empty来修复它:

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