C# 我应该实例化保存方法调用返回类型的变量吗?

C# 我应该实例化保存方法调用返回类型的变量吗?,c#,C#,我有一个CarSpecs类,我有一个带有GetCarSpecs方法的服务,它的返回类型是CarSpecs。我是否应该这样调用该方法: CarSpecs carSpecs = service.GetCarSpecs(); CarSpecs carSpecs = new CarSpecs(); carSpecs = service.GetCarSpecs(); 或者,在调用服务中的方法之前,先实例化CarSpecs类是否有意义,如下所示: CarSpecs carSpecs = service.

我有一个CarSpecs类,我有一个带有GetCarSpecs方法的服务,它的返回类型是CarSpecs。我是否应该这样调用该方法:

CarSpecs carSpecs = service.GetCarSpecs();
CarSpecs carSpecs = new CarSpecs();
carSpecs = service.GetCarSpecs();
或者,在调用服务中的方法之前,先实例化CarSpecs类是否有意义,如下所示:

CarSpecs carSpecs = service.GetCarSpecs();
CarSpecs carSpecs = new CarSpecs();
carSpecs = service.GetCarSpecs();

不,不需要实例化一个将被丢弃的附加对象。

没有理由执行第二个。第一个示例是正确的。第二个方法创建了对CarSpecs实例的无用引用,该引用立即被Method返回的引用替换。基本上,在调用Method之前不需要创建新实例,也不需要像第二个示例中那样创建实例。还有一件事,如果您不确定方法的返回类型,请使用“var”关键字。e、 g.var carSpecs=service.GetCarSpecs();假设
CarSpecs
是一个参考类型(aka,一个类),那么
CarSpecs
只是一个参考变量。如果您只说
CarSpecs CarSpecs
,它将被初始化为
null
(尽管如果您尝试使用它,编译器会抱怨它未初始化)。当您
CarSpecs CarSpecs=new CarSpecs()时,将分配新内存,在该内存中构造新对象,
carSpecs
将使用对新obj的引用进行初始化。在下一行中,
carSpecs
被重新分配,并且原始对象没有引用,因此它将被垃圾收集。你所做的就是制造垃圾。