哪一个:
using (var myObject = new MyClass())
{
try
{
// something here...
}
catch(Exception ex)
{
// Handle exception
}
}
OR
try
{
using (var myObject = new MyClass())
{
// something here...
}
}
catch(Exception ex)
{
// Handle exception
}
从c# 8.0开始,您可以在某些条件下简化使用语句来摆脱嵌套块,然后它只适用于封闭块。
所以你的两个例子可以简化为:
using var myObject = new MyClass();
try
{
// something here...
}
catch(Exception ex)
{
// Handle exception
}
And:
try
{
using var myObject = new MyClass();
// something here...
}
catch(Exception ex)
{
// Handle exception
}
这两点都很清楚;然后,这将两者之间的选择减少到您希望对象的作用域是什么,您希望在哪里处理实例化错误,以及您希望在什么时候处理它。