在 try 内或 try 外声明 class 对象?哪个是最佳实践

Declaring class object inside try or outside try? Which is best practice

在我的代码中,我需要创建 FileInfo/StreamWriter class 的对象。 可以通过两种方式完成

FileInfo file = null;
try
{
// now instantiate the object
file = new FileInfo()
}

或者

try
{
FileInfo file =  null;
file = new FileInfo()
}

哪个更好? GC 处理对象的方式有什么不同吗?

视情况而定。您是否需要在 try 块之外访问 file?如果答案是“不,在任何情况下都不会”,那么在try 块内声明它是个好主意。如果答案是“是的,在我的 catchfinally 块中或稍后代码中的某处 ”,那么您 应该 try 块外声明它。

至于你关于性能可能影响的问题,已经忘记了这个问题。

最后但同样重要的是,GC 不处理任何东西。 Disposing 和 GC 是两个不相关的东西,GC 不知道一次性对象和 IDisposable 接口有什么关系。