通过看似不必要的字符串初始化来提升性能?

时间:2013-06-11 03:48:44

标签: c# .net string initialization .net-2.0

目前我保持一个古怪的代码库,并且遇到了以下相同的模式超过100次:

string NotMySqlQuery = ""; //why initialize the string with "", only to overwrite it on the next line?
NotMySqlQuery = "The query to be executed";

由于我经常遇到这种情况,我现在怀疑自己的判断力。

这是优化编译器的技巧还是带来其他任何优势?

它让我想起了我在C ++中编写一些代码时的旧时代,但它仍然不适合我处理字符串。

为什么会有人写这样的代码?

2 个答案:

答案 0 :(得分:3)

该语法没有性能优势。它甚至比没有初始化更糟糕,因为字符串在c#中是不可变的,这样就分配了2个单独的字符串。

答案 1 :(得分:1)

对于你的简单情况,最好将2行保存为一行,没有必要为它分配一个空字符串,并立即为其指定另一个值。

string NotMySqlQuery = "The query to be executed";

这更清楚。