|
1
7
编译器具有在需要时将变量声明移入/移出循环的智能。然而,在您的示例中,您使用的是一个字符串,它是不可变的。通过在外部声明,我相信您正在尝试“创建一次,使用多个”,但是每次修改字符串时都会创建字符串,所以您无法实现这一点。
如果集合很大,请继续将许多字符串附加到StringBuilder中—用分隔符分隔。然后拆分此分隔符上的字符串并迭代数组以添加它们,而不是将它们串联起来并将它们添加到一个循环中。
更新: 鉴于从多个字符串创建字符串的快速性能,如果PerformSomeTask是您的瓶颈,请尝试将字符串的迭代分解为多个线程—这不会提高代码的效率,但您可以使用多个核心。 |
|
|
2
2
通过reflector运行这两个函数并查看生成的程序集。它可能会提供一些见解,但充其量,性能改进将是最小的。 |
|
|
3
1
我会选择这个:
可能仍然没有真正的性能优势,但它消除了创建一个您并不真正需要的变量。 |
|
|
4
0
不,没有。像这样的事情是由C#编译器处理的,它非常智能,您基本上不需要关心这些细节。 总是使用提高可读性的代码。 您可以通过反汇编程序来检查这一点。 |
|
|
5
0
我不会提高绩效。但另一方面:假设的改进容易出错。你必须衡量你的应用程序,只有优化慢的部分,如果需要。我不相信循环是你的应用程序的瓶颈。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |