在 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
块内声明它是个好主意。如果答案是“是的,在我的 catch
或 finally
块中或稍后代码中的某处 ”,那么您 应该 在 try
块外声明它。
至于你关于性能可能影响的问题,已经忘记了这个问题。
最后但同样重要的是,GC
不处理任何东西。 Disposing 和 GC
是两个不相关的东西,GC
不知道一次性对象和 IDisposable
接口有什么关系。
在我的代码中,我需要创建 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
块内声明它是个好主意。如果答案是“是的,在我的 catch
或 finally
块中或稍后代码中的某处 ”,那么您 应该 在 try
块外声明它。
至于你关于性能可能影响的问题,已经忘记了这个问题。
最后但同样重要的是,GC
不处理任何东西。 Disposing 和 GC
是两个不相关的东西,GC
不知道一次性对象和 IDisposable
接口有什么关系。