Search code examples
c#klocwork

klocwork:Suspicious dereference of object reference 'dt' before null check


I am getting Suspicious dereference of object reference 'dt' before null check error with `Klocwork' code analysis. What could be the solution? Thanks!

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

Getting error at below line,

if (dt != null)


Solution

  • the line

    if (dt != null)
    

    obviously, checks if dt is null. From this, your analyzer assumes that dt might be null at this point. However, immediately before that, you have the following line:

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

    which would produce NullReferenceException if dt is null. That's why your analyzer warns you that something is wrong here: it is either dt can't be null so the null check is redundant or your code might throw a sudden NullReferenceException and you should add more null checks.