【发布时间】:2019-08-09 16:56:48
【问题描述】:
我想重构我的SqlDataReader 代码,所以它使用using..
SqlDataReader reader = null;
reader = xdCmd.ExecuteReader();
// use reader..
我可以使用解决方案 1) 在 using 中声明 reader,然后先用 SqlDataReader 对其进行初始化,然后仍然使用提供的 Dispose“功能”吗?或者我是否需要像解决方案 2) 中那样,在 using 中立即进行初始化?
我猜 1) 没问题,但我不确定。
1)
using (SqlDataReader reader = null)
{
xdCmd.CommandText = $"select * from {tableName}";
reader = xdCmd.ExecuteReader();
// use reader..
}
2)
using (SqlDataReader reader = new SqlDataReader(new SqlCommand($"select * from {tableName}"), xdCon))
{
reader = xdCmd.ExecuteReader();
// use reader..
}
【问题讨论】:
-
1 是行不通的,所以让我们立即取消它,当没有对某事的引用时,编译器如何知道您将来可能会或可能不会做什么
-
好的,所以 1 是不可能的,我很高兴我当时问了,谢谢。
标签: c# dispose using-statement