如果我使用类似的东西:
using (OdbcConnection conn = new OdbcConnection(....))
{
conn.open();
my commands and sql, etc.
}
Run Code Online (Sandbox Code Playgroud)
我是否必须做一个conn.close(); 或者使用声明是否阻止我做最后一次通话?它是否处理了使用块中的所有内容?例如,如果我将其他对象称为不相关的,那么它也会自动消耗吗?
谢谢.在阅读有关在微软网站上使用后,我不清楚.我想确保我没有任何内存泄漏.
请参阅我的其他答案的最重要部分,了解如何在C#中使用using关键字以获取更多信息.
我还应该提到,一旦完成连接就可以关闭(处置)连接以释放资源.指南说调用者应该能够重复调用dispose方法.使用块基本上只是一个安全网,并允许在大多数情况下编写更清晰的代码.
[编辑]例如,在使用中进行多次初始化:使用相同的初始化多个对象,而不必使用块嵌套,如果对象是相同的类型:
using (Bitmap b1 = new Bitmap("file1"), b2 = new Bitmap("file2"))
{ ... }
Run Code Online (Sandbox Code Playgroud)
Joel Coehoorn提到了堆叠,它是嵌套但省略了大括号,就像你可以省略a for或者if语句中的大括号一样.UI不会使用缩进重新格式化.我很好奇IL的样子.
using(Bitmap b = new Bitmap("filex"))
using(Graphics g = Graphics.FromImage(b))
{
}
Run Code Online (Sandbox Code Playgroud)
使用将不同的对象放在同一个使用中是错误的 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))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2287 次 |
| 最近记录: |