【发布时间】:2021-11-17 18:16:13
【问题描述】:
在 C# 中,有谁知道是否这样做...
public object Foo()
{
var command = new MyCommand(param1);
return Myfunction(command);
}
比这样做效率低(使用更多内存)?
public object Foo()
{
return Myfunction(new MyCommand(param1));
}
还是只是表面上的区别?似乎第一个选项会消耗更多内存,直到变量超出范围。我意识到任何差异都会非常小。另外,第二种语法有名称吗?排队?某物?谢谢!
【问题讨论】:
-
智能编译器会同时优化对象并生成相似的代码。
-
在这两种情况下都必须为对象分配内存。应该没有区别。
-
"Inline" 是合适的,是的。编译后的代码可能没有区别,并且对象在两种情况下都会保持相同的状态(直到
Myfunction完成),因此“范围”是相同的 -
请将您的示例代码复制粘贴到sharplab 并打开右侧面板上的
IL以查看差异