is new myObject().Load(); okay?
本文关键字:okay Load new is myObject | 更新日期: 2023-09-27 18:21:21
我可以这样做吗:
private someMethodSomewhere(){
new myObject().Load();
}
取而代之的是:
private someMethodSomewhere(){
myObject objectItem = new myObject().Load();
}
是同一件事吗
编辑:我不认为这需要澄清。。。但我想它确实:Load()确实返回myObject的实例。。。。否则它将无法编译。
以下等效:
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中。
是!如果这正是你正在使用的代码,那么它也是一样的。
这是一样的,除非您不想在方法中使用objectitem
。从功能的角度来看,没有任何区别。
编辑
第二种情况下的正确代码是
private someMethodSomewhere(){
myObject objectItem = new myObject();
objectItem.Load();
}
是的,但在第一个例子中,您没有将新对象分配给变量,也无法对其执行任何操作
private someMethodSomewhere(){
myObject objectItem = new myObject();
objectItem.Load();
}