Can using string.Empty be harmful?
Possible Duplicate:
In C#, should I use string.Empty or String.Empty or “” ?
我刚刚在这个问题/答案中偶然发现了以下句子:
As of the C# 2.0 compiler, there is
very little point toString.Empty
anyway, and in fact in many cases it's
a pessimisation, since the compiler
can inline some references to"" but
can't do the same withString.Empty .
这句话是真的吗?因此,我们应该始终使用
请注意:我不会询问任何编码样式指南(更容易阅读)。我想知道是否有功能上的差异(例如,内联)。
Is this statement true?
Interning的要点是共享引用以节省内存并缩短比较时间(引用比较非常快)。由于
Should we therefore always use
"" instead ofstring.Empty ?
就我个人而言,我发现
1 2 | Console.WriteLine (ReferenceEquals ("", string.Empty) ?"Same Reference" :"Different Reference"); // Prints"Same Reference" |
看起来这是纯粹的偏好(至少在微软版本的clr上)。有人知道莫诺吗?
你几乎应该总是使用一个更容易阅读的。在实践中,潜力几乎不重要。
IMO
你所引用的性能部分似乎是合理的。
如果您以编译器理解的方式将
例子:
1 | string s =""+"A"+""+"B"+""; |
可能比:
1 | string s = string.Empty+"A"+string.Empty+"B"+string.Empty; |
当然,任何理智的人都会写:
1 | string s ="AB"; |
但是,C程序员有可能为