是否有必要在try-catch块的最后一个块中释放对象?

har*_*ork 4 c# try-catch

问题是自我解释:

Foo objfoo;
try
{
  objfoo = new Foo();
  ..........
  .........
}
catch
{

}
finally
{
  objfoo = null;
} 
Run Code Online (Sandbox Code Playgroud)

是否有必要释放这样的对象?

Jar*_*Par 13

注意:将local/field设置null为不释放该值.相反,删除对该值的引用,该引用可能会或可能不会使其在下一个GC cyle期间可以进行收集.

要回答这个问题,不是没有必要.JIT`er将计算上次使用本地的时间,并且基本上将本地删除为当时对象的GC根之一.取消本地出局不会加快这一进程.

Raymond Chen在这个主题上写了一篇很好的文章