通过声明循环外的对象是否有任何性能提升
我有一个代码,我在循环中声明一个对象,如:
foreach(...) { ClassA clA = new ClassA(); clA.item1=1; clA.item2=2; ClassB.Add(clA); }
如果我按如下方式修改代码,是否会有任何性能提升:
ClassA clA; foreach(...) { clA = new ClassA(); clA.item1=1; clA.item2=2; ClassB.Add(clA); }
提前致谢。
这样没有性能提升。 它只会帮助变量超出范围,而不是更快。
编译器会自动优化代码,无论如何都要在循环外部移动声明,因此这样做没有任何好处。
例如
while(...){ int i = 5; ... }
将编译器优化为此优化
int i; while(...){ i = 5; ... }
实际的对象分配发生在clA = new ClassA();
因此除非你能将它移出循环,否则你将无法获得任何性能提升。
正如大家所说,并非如此,但我仍然会将您的代码更改为:
上述就是C#学习教程:通过声明循环外的对象是否有任何性能提升分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
foreach(...) { ClassB.Add(new ClassA() { item1=1, item2=2 }); }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/998000.html