Wann würde SqlCommand.ExecuteReader () null zurückgeben?

Bei Verwendung des AnrufsSqlCommand.ExecuteReader() Methode, ReSharper sagt mir, dass ich eine mögliche NullReference-Ausnahme habe, wenn ich danach das SqlDataReader-Objekt verwende.

Also mit folgendem Code:

using (SqlConnection connection = GetConnection())
{
    using (SqlCommand cmd = connection.CreateCommand())
    {
        cmd.CommandText = ; //snip

        using (SqlDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                //snip
            }
        }
    }
}

Daswhile (reader.Read()) Linie ist unterstrichen.

Meine Frage ist, wann das Leserobjekt jemals null sein würde? Ich bin nie darauf gestoßen und die Dokumentation erwähnt nicht, dass es sein könnte. Sollte ich überprüfen, ob es null ist oder ob es sicher ist, es zu ignorieren?

Und warum sollte ReSharper denken, dass es null sein könnte, wenn ich zum Beispiel den SqlCommand verwenden kann, ohne zu empfehlen, dass er auf null überprüft wird? Die ExecuteReader-Methode enthält vermutlich ein Attribut.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage