0

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

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

在下一行出现错误,

if (dt != null)

4

1 回答 1

1

线

if (dt != null)

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

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

如果 dt 为空,这将产生 NullReferenceException。这就是为什么您的分析器会警告您这里有问题:要么 dt 不能为 null,因此 null 检查是多余的,要么您的代码可能会突然抛出 NullReferenceException,您应该添加更多的 null 检查。

于 2017-12-07T06:27:46.827 回答