空检查后可能出现空引用

Possible null reference after null check

提问人:Pozzi Userpic 提问时间:8/21/2022 更新时间:8/21/2022 访问量:118

问:

我在解决此 CS8603 警告时遇到问题。即使对变量进行了 null 检查,仍然可以进行 null 引用。怎么会这样?resource

enter image description here

法典:

public string GetResource(string resourcePath)
{
    var resource = Application.Current.Resources[resourcePath];
    if (resource == null)
    {
        return $"{ResourceError} [{resourcePath}]";
    }

    // ToDo: CS8603
    return resource.ToString();
}
C# WPF 警告

评论


答:

4赞 Bill Tür stands with Ukraine 8/21/2022 #1

您确实正确地检查了是否为 null。但即使不是,也可能返回 null。您可以使用类似的东西resourceToString()

return resource.ToString() ?? "";