c#中Using块的目的是什么?它和局部变量有什么不同?
当前回答
在using块中放置代码可以确保一旦控件离开块,对象就会被处理(尽管不一定会被收集)。
其他回答
using语句获取一个或多个资源,执行一条语句,然后处置资源。
还要注意,通过using实例化的对象在using块中是只读的。请参考这里的官方c#参考。
在Using块离开后使用Dispose(),即使代码抛出异常。
因此,您通常将using用于需要在它们之后清理的类,例如IO。
所以,这个使用block:
using (MyClass mine = new MyClass())
{
mine.Action();
}
会做同样的事情:
MyClass mine = new MyClass();
try
{
mine.Action();
}
finally
{
if (mine != null)
mine.Dispose();
}
使用“使用”更简短,更容易阅读。
using (B a = new B())
{
DoSomethingWith(a);
}
等于
B a = new B();
try
{
DoSomethingWith(a);
}
finally
{
((IDisposable)a).Dispose();
}
在using块中放置代码可以确保一旦控件离开块,对象就会被处理(尽管不一定会被收集)。
推荐文章
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 转换为值类型'Int32'失败,因为物化值为空
- c#中有任何连接字符串解析器吗?
- 在Linq中转换int到字符串到实体的问题
- 是否可以动态编译和执行c#代码片段?
- 创建自定义MSBuild任务时,如何从c#代码获取当前项目目录?
- MSBuild路径
- c#和Java的主要区别是什么?
- 在c#中创建一个特定时区的DateTime
- .NET中的属性是什么?
- csproj文件中的“Service Include”是干什么用的?
- 如何使用try catch进行异常处理是最佳实践
- 替换字符串中第一次出现的模式
- .NET中字节的字面后缀?
- 如何处理AccessViolationException