【String.Empty,NULL和""的区别】* l3 X! W( j! M$ ]% S! A9 i
, o6 F9 p! m7 E3 [+ Mstring.Empty不分配存储空间
5 k7 v: U% \* t! d ""分配一个长度为空的存储空间 7 p7 a ~' b( Q" \% W2 D
所以一般用string.Empty
" @ x: U% h e2 W! I5 x, H, T! P) |# c- q. j1 y. R! o
为了以后跨平台,还是用string.empty
' T. T; n! T8 b4 Q0 x% g
: E3 p- Q: }; @. {在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:" L7 G$ E$ m v0 Y5 m0 ~
# y9 z: @7 }* o5 a; z: n7 W; e string s = "";: ~( L( o7 ?& ~) m `3 r& ? K
string s2 = string.Empty;* W# }. U: h8 \( B9 H
7 S8 }# a! ~" |3 s% p2 pif (s == string.Empty) {
! w* Z# L+ e6 C# _& Q/ l$ e# v; E // 6 F# B& m5 f, i2 Z; _$ @9 y$ k
}
2 t* b9 _5 h, h) }( [if语句成立
7 C/ o X: Y5 \' Q2 m! ]
1 K) H, E( j% _5 u9 s) S* z
0 v/ e1 x. J$ L判定为空字符串的几种写法,按照性能从高到低的顺序是:
8 h) x: o& B1 ?; h+ E7 ^+ [0 j. g: D, C; d
s.Length == 0 优于 s == string.Empty 优于 s == "" 3 {& c# w/ M- M* O
% f. r n8 K; x/ y- o$ y8 V
; Q+ p9 |( }: \3 D关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。 |