来自第28行的空引用'#as(test,0)'将在第28行被解除引用

时间:2017-12-06 15:20:15

标签: c# klocwork

我有以下课程,

private void Test()
    {
        var test = ConfigurationManager.GetSection("Test");

        if (test != null)
        {
            var a= (test as Test1).Test2;
        }
    }

现在我有以下方法,

Null reference '#as(test, 0)' that comes from line 28 will be dereferenced at line 28

现在我收到Klockwork错误说,

var a= (test as Test1).Test2;

此错误意味着什么以及如何解决?

注意这是Klockwork错误,但C#编译不会有任何错误。

以下代码行出错,

{{1}}

1 个答案:

答案 0 :(得分:2)

它会编译,但as有机会得到的结果值为null。你可以确保它不会这样抛出:

    var test = ConfigurationManager.GetSection("Test") as Test1;

    if (test != null)
    {
        var a = test.Test2;
    }