【发布时间】:2021-10-11 10:01:49
【问题描述】:
当使用调用SqlCommand.ExecuteReader() 方法时,ReSharper 告诉我之后使用 SqlDataReader 对象时可能会出现 NullReference 异常。
所以用下面的代码:
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 会认为它可能为空,例如,它允许我使用 SqlCommand 而不建议检查它是否为空?我猜 ExecuteReader 方法上有一个属性。
【问题讨论】:
标签: .net resharper nullreferenceexception sqlcommand