SqlCommand.ExecuteReader()
メソッドを呼び出すと、ReSharperは、後でSqlDataReaderオブジェクトを使用するとNullReference例外が発生する可能性があることを示します。SqlCommand.ExecuteReader()はいつnullを返しますか?
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になるのですか?私はそれに遭遇したことはありませんし、ドキュメンテーションにはそれができると言及されていません。それがヌルか無視するのが安全かどうかチェックしなければなりませんか?
なぜ、ReSharperはnullになる可能性があると思いますか?たとえば、SqlCommandを使用してnullをチェックすることを推奨しない場合私は、ExecuteReaderメソッドに属性があると思います。