我可以这样做:
private someMethodSomewhere(){
new myObject().Load();
}
而不是:
private someMethodSomewhere(){
myObject objectItem = new myObject().Load();
}
这是一回事吗?
修改 我认为这不需要澄清......但我猜它确实如此: Load()DOES返回myObject的实例....否则它将无法编译。
答案 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();
}