在try或outside try中声明类对象?哪个是最佳实践[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在try或outside try中声明类对象?哪个是最佳实践[关闭]相关的知识,希望对你有一定的参考价值。

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

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

要么

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

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

答案

这取决于。您是否需要在file街区外访问try?如果答案是“不,不是在任何情况下”,那么在try区块内声明它是一个好主意。如果答案是“是的,在我的catchfinally块或稍后的代码中的某个地方”,那么你应该在try块之外声明它。

至于你对性能可能影响的问题,请忘记这个问题。

最后但并非最不重要的是,GC没有任何处置。处置和GC是两个无关的事情,GC不知道关于一次性物体和IDisposable界面的任何事情。

以上是关于在try或outside try中声明类对象?哪个是最佳实践[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥“catch”或“finally”范围内的“try”中没有声明变量?

java中try 与catch的使用?

20165232 第五周学习总结

在 catch 子句中访问声明为“try-with”-resource

try-with-resources语句

Java 7 使用TWR(Try-with-resources)完成文件copy