What is the difference between String.Empty and “” and null?
Possible Duplicate:
What is the difference between String.Empty and “”
哪个是初始化字符串值的首选项?
1 2 3 4 5 | public sealed class String { //... public static readonly String Empty =""; //... } |
当你想表示没有价值时,使用
当您想表示有一个值,但该值是一个空字符串时,请使用
空,因为它是一个静态变量,而不是"必须创建一个新的字符串,而空则意味着必须将该字符串设置为一个新的字符串实例。
(感谢更正)
对。还有绳子。空的,但请不要担心。
The difference between String.Empty and"" are pretty small, but there is a
difference. "" actually creates an
object, it will likely be pulled out of the string intern pool and String.Empty creates no object, so if you are really looking for ultimate
memory efficiency, I suggest String.Empty.
However, you should keep in mind the difference is so trival you will
like never see it in your code…
用你认为最可读的。
我向任何人提出挑战,要找到一个实际的应用程序,其中存在显著的性能差异…这是不会发生的。然而,不同的人发现不同的方法更易读。
就我个人而言,我是一个江户人。我发现它不那么杂乱,而且我从来没有遇到过一个问题,我实际上是不小心使用了
如果你喜欢
编辑:只是为了减轻一些担心,这些担心可能是由"将创建一个新字符串…它可能会创建一个新的字符串(可能是每个
1 2 3 4 5 6 7 8 9 10 | public void Foo() { string x =""; for (int i=0; i < 10000000; i++) { string y =""; // Do something here } string z =""; } |
你方保证,
最好使用string.empty,但它们实际上是相等的。但是,它们与空值不同。
你要找的答案在这里。
string.empty和"(empty string)有什么区别?
使用string.empty
他们是平等的。但string.empty是常量。
"—是创建字符串的方法。
从http://msdn.microsoft.com/en-us/library/system.string.empty.aspx
此字段的值是零长度字符串""。
在应用程序代码中,此字段最常用于将字符串变量初始化为空字符串的赋值。若要测试字符串的值是否为字符串..::.Empty,请使用IsNullOrEmpty方法。