メソッドの呼び出しSqlCommand.ExecuteReader()
を使用する場合、後でSqlDataReaderオブジェクトを使用すると、NullReference例外が発生する可能性があるとReSharperから通知されます。
したがって、次のコードを使用します。
using (SqlConnection connection = GetConnection())
{
using (SqlCommand cmd = connection.CreateCommand())
{
cmd.CommandText = ; //snip
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
//snip
}
}
}
}
while (reader.Read())
線には下線が引かれています。
私の質問は、リーダーオブジェクトがいつnullになるのかということです。私はそれに出くわしたことがなく、ドキュメントにはそれがあり得るとは記載されていません。nullかどうかを確認する必要がありますか、それとも無視しても安全ですか?
また、ReSharperがnullになる可能性があると考えるのはなぜですか。たとえば、nullのチェックを推奨せずにSqlCommandを使用できる場合はどうでしょうか。ExecuteReaderメソッドに属性があると思います。