是新的myObject()。Load();好的?

时间:2012-01-25 21:52:51

标签: c# .net

我可以这样做:

private someMethodSomewhere(){
    new myObject().Load();
}

而不是:

private someMethodSomewhere(){
    myObject objectItem = new myObject().Load();
}

这是一回事吗?


修改 我认为这不需要澄清......但我猜它确实如此: Load()DOES返回myObject的实例....否则它将无法编译。

4 个答案:

答案 0 :(得分:3)

以下是等效的:

private someMethodSomewhere(){
    new myObject().Load();
}

private someMethodSomewhere(){
    myObject objectItem = new myObject();
    objectItem.Load();
}

除非Load方法返回myObject的实例,否则您的第二个代码段可能无法编译。

如果Load返回myObject的实例,则以下内容相同:

private someMethodSomewhere() {
    myObject objectItem = new myObject().Load();
}

在Release模式下编译时,编译器可能会对其进行优化,并删除未使用的objectItem变量,两者最终都会:

private someMethodSomewhere() {
    new myObject().Load();
}

在最后的IL中。

答案 1 :(得分:2)

是的!如果这正是您正在使用的代码,那么它就是一样的。

答案 2 :(得分:0)

除非您不想在方法中使用objectitem,否则这是相同的。 从功能的角度来看,没有任何区别。

编辑

第二种情况下的正确代码是

private someMethodSomewhere(){
    myObject objectItem = new myObject();
    objectItem.Load();
}

答案 3 :(得分:0)

是的,但是在第一个示例中,您没有将新对象分配给变量,也无法对其执行任何操作。更好的方法是:

private someMethodSomewhere(){
    myObject objectItem = new myObject();
    objectItem.Load();
}