您是否总是为新对象创建变量?

Mat*_*ttH 4 .net

我经常问自己一个问题,如果你需要在一个对象上调用一个方法,最好使用一个变量吗?到目前为止,我已经猜到答案是肯定的 - 您的选择是什么,原因是什么?

随变量:

MyObject mo = new MyObject();
mo.MyMethod();
//mo not used again
Run Code Online (Sandbox Code Playgroud)

没有变量:

new MyObject().MyMethod();
Run Code Online (Sandbox Code Playgroud)

我对.NET特别感兴趣,但是如果在其他语言中有任何危险点,我也更愿意预先警告.

ere*_*der 9

另一种方法可能是使用静态方法.这样,您可以避免创建新对象.

public class MyClass
{
  public static int GetSomeInt()
  {
     //do something
  }
}
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 7

不,我经常链接方法调用,尤其是LINQ:

var query = source.Where(...)
                  .Select(...)
                  .Take(10);
Run Code Online (Sandbox Code Playgroud)

如果要调试中间值,并且为了解释中间值(通过名称),额外的变量可能很有用,但除此之外,没有真正的问题.


dri*_*iis 6

正如您所描述的那样,两种选择之间没有有效的区别.但是如果你经常需要创建一个对象的实例,只需调用一个方法; 你应该考虑你的设计是否正确?是否有必要拥有所有这些短命的物体?请记住,对于每个对象分配,垃圾收集器最终必须收集引用.