如何在 C# 中将 try-catch-finally 块转换为 using 语句?
How to convert a try-catch-finally block to using statement in c#?
假设我们创建了一个 IDisposable 对象,并且我们有一个 try-catch-finally 块
var disposable= CreateIDisposable();
try{
// do something with the disposable.
}catch(Exception e){
// do something with the exception
}finally{
disposable.Dispose();
}
如何将其转换为 using 块?
如果是
var disposable= CreateIDisposable();
try{
// do something with the disposable.
}finally{
disposable.Dispose();
}
我会转换为
using(var disposable= CreateIDisposable()){
// do something with the disposable.
}
如何使用 catch 块执行此操作?
try{
using(var disposable= CreateIDisposable()){
// do something with the disposable.
}
}catch(Exception e){
// do something with the exception
}
你很接近。正好相反。
实际上,CLR 没有 try
/catch
/finally
。它有 try
/catch
、try
/finally
和 try
/filter
(当 when
子句用于 catch
)。 C# 中的 try
/catch
/finally
只是 try
/[ 的 try
块中的 try
/catch
=13=].
因此,如果您展开它并将 try
/finally
转换为 using
,您将得到:
using (var disposable = CreateIDisposable())
{
try
{
// do something with the disposable.
}
catch (Exception e)
{
// do something with the exception
}
}
假设我们创建了一个 IDisposable 对象,并且我们有一个 try-catch-finally 块
var disposable= CreateIDisposable();
try{
// do something with the disposable.
}catch(Exception e){
// do something with the exception
}finally{
disposable.Dispose();
}
如何将其转换为 using 块?
如果是
var disposable= CreateIDisposable();
try{
// do something with the disposable.
}finally{
disposable.Dispose();
}
我会转换为
using(var disposable= CreateIDisposable()){
// do something with the disposable.
}
如何使用 catch 块执行此操作?
try{
using(var disposable= CreateIDisposable()){
// do something with the disposable.
}
}catch(Exception e){
// do something with the exception
}
你很接近。正好相反。
实际上,CLR 没有 try
/catch
/finally
。它有 try
/catch
、try
/finally
和 try
/filter
(当 when
子句用于 catch
)。 C# 中的 try
/catch
/finally
只是 try
/[ 的 try
块中的 try
/catch
=13=].
因此,如果您展开它并将 try
/finally
转换为 using
,您将得到:
using (var disposable = CreateIDisposable())
{
try
{
// do something with the disposable.
}
catch (Exception e)
{
// do something with the exception
}
}