klocwork:在空检查之前可疑地取消引用对象引用'dt'

时间:2017-12-07 06:03:21

标签: c# klocwork

我在“Klocwork”代码分析中遇到Suspicious dereference of object reference 'dt' before null check错误。可能是什么解决方案?谢谢!

using (DataTable dt = new DataTable())
        {
            dt.TableName = "Hello";
            dt.Columns.Add("HEllo1", typeof(string));
            if (dt != null)
            {
            }
            return dt;
        }

在下面的行中获取错误,

if (dt != null)

1 个答案:

答案 0 :(得分:1)

if (dt != null)
显然,检查dt是否为null。由此,您的分析器假定此时dt可能为null。但是,在此之前,您有以下行:

dt.Columns.Add("HEllo1", typeof(string));

如果dt为null,则会产生NullReferenceException。 这就是为什么你的分析器警告你这里出了问题的原因:它要么是空的,所以空检查是多余的,否则你的代码可能会抛出一个突然的NullReferenceException,你应该添加更多的空检查。 / p>