类的以下方法之间是否存在差异:
public MyClass GetMyClassInstance()
{
return new MyClass();
}
和
public MyClass GetMyClassInstance()
{
MyClass myClassObj = new MyClass();
return myClassObj;
}
第二个选项是内存泄漏证明吗?或者更确切地说,这两种方法对内存泄漏的影响是什么?
我可能错了,但我知道,这两种方法都没有内存泄漏问题。但仍需要听取专家的意见。
答案 0 :(得分:7)
根本没有显着差异。后者稍微宽松一点,但允许您在返回之前轻松检查调试器中的值 - 这是唯一的区别。
在内存泄漏方面肯定没有区别。我希望在优化的JIT编译器下运行的优化构建中,您最终可能会得到完全相同的本机代码。 (即使在优化构建下,IL也略有不同,因为在第二种形式中有一个额外的stloc / ldloc对,但是JIT可以很容易地优化它。)
你应该使用你认为最方便的形式,基本上。