以下选项中的哪个更好
一个使用声明是否足够?
选项1:
using(SqlConnection con = new SqlConnection(constring))
{
using(SqlCommand cmd = new SqlCommand())
{
.........................
.........................
.........................
}
}
选项2:
using(SqlConnection con = new SqlConnection(constring))
{
SqlCommand cmd = new SqlCommand();
.........................
.........................
.........................
}
答案 0 :(得分:15)
通常最简单的方法是遵循规则,“如果类型实现IDisposable
,那么使用using
构造。”所以我会选择某种形式的选项1.
答案 1 :(得分:9)
你需要把它们都包起来,虽然你可以让它看起来有点整洁,如果那困扰你的话!
using (var conn = new SqlConnection(/* ... */))
using (var cmd = new SqlCommand(/* ... */))
{
// ...
}
答案 2 :(得分:2)
第一个肯定更好。
即使Connection和Command之间存在使外部足够的关系,您也不希望依赖它,或者希望读者知道。
此类关系始终未记录在案,并可能在将来的版本中发生变化。
答案 3 :(得分:1)
根据经验,这并不足以在每次实例化IDisposable时将其包含在一个使用块中。
答案 4 :(得分:1)
当你有多个时,最好使用两个使用命令(尽管有alternative syntaxes)。垃圾收集最好明确表示何时需要访问这些资源。