【String.Empty,NULL和""的区别】
& G2 Q1 ?6 J: A! A/ H2 ^, k6 d& i( u0 T
string.Empty不分配存储空间& T, ?' _ g1 a4 r) K% J/ B: G
""分配一个长度为空的存储空间
; [+ E! y' t3 y' v& {& g( y9 _ 所以一般用string.Empty
6 `8 o @) m' d' ?9 r6 K& C7 v0 D/ g
为了以后跨平台,还是用string.empty
9 ?/ E# _7 V4 w" X& f- Q8 d) j7 M, u( m# ?- g: Q) y5 L. x% E
在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:9 x" Q4 S" W: p) u. I9 r+ m
9 b! u0 ?/ Y! e6 O8 }
string s = "";
# Q; W( L& K! y1 fstring s2 = string.Empty;
5 O8 f ` `& F3 U
, A* K, t/ R$ c. N3 r- v. t% q Fif (s == string.Empty) {
) w6 d$ G& q; [; @4 z( ~ //
. c- w2 L h8 g( F5 l}8 G' S( o! s1 P; E- W
if语句成立 0 o: k1 k8 i' w5 ^9 _2 s+ S
, T% V5 Y0 v& \ T# z- F2 p2 Y+ ]" i
判定为空字符串的几种写法,按照性能从高到低的顺序是:
) N9 M4 {3 B, W% q9 z4 c7 l4 x8 e6 U) h( e6 Y
s.Length == 0 优于 s == string.Empty 优于 s == "" ; G& Q3 s% K" ]& C4 G
) x- f: L8 R7 h( z- [8 i' s& i$ w* D( c% e$ R3 E& r, n4 Z
关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。 |