- using 块将处理 OdbcConnection。
- 正常范围规则适用于 using 块内声明的任何内容。
- using 块不会清理任何其他 IDisposable 对象。它只清理声明的项目
- 请注意,您可以使用块进行嵌套,或者如果项目是相同的类型,则可以同时初始化多个项目。
有关如何在 C#中使用 using 关键字的更多信息,请参阅我的其他答案的顶部。
我还应该提到,您可以在完成连接以释放资源后立即关闭(处置)连接。指导方针说调用者应该能够重复调用 dispose 方法。using 块本质上只是一个安全网,允许在大多数情况下编写更清晰的代码。
[编辑] 例如 using 中的多个初始化:如果对象是相同的类型,则在同一 using 中初始化多个对象,而无需嵌套 using 块:
using (Bitmap b1 = new Bitmap("file1"), b2 = new Bitmap("file2"))
{ ... }
Joel Coehoorn 提到了堆叠,这是嵌套但省略了大括号,就像您可以在for
, orif
语句中省略大括号一样。UI 不会使用缩进重新格式化。我很好奇IL是什么样的。
using(Bitmap b = new Bitmap("filex"))
using(Graphics g = Graphics.FromImage(b))
{
}
使用将不同的对象放在同一个使用中是错误的error CS1044: Cannot use more than one type in a for, using, fixed, or declaration statement.
// error CS1044
using(Bitmap b = new Bitmap("filex"), Graphics g = Graphics.FromImage(b))