【String.Empty,NULL和""的区别】8 D. Y# v! e7 |5 [* F& g
0 \) d5 `2 S9 t; u; h$ X
string.Empty不分配存储空间 ; Z+ D7 m7 p/ _7 B. x/ s ""分配一个长度为空的存储空间 0 _+ m b' f; _% T 所以一般用string.Empty% |* k! D, Y _; a1 v+ m
E; R' @5 v/ a0 g$ n
为了以后跨平台,还是用string.empty! a9 o2 _" S* I& I
% F! e, }8 S! h U* h- E6 C7 p在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如: 1 X* G/ B' D# K( Y8 E5 O4 I: |0 @8 P d h! T! R
string s = "";3 A2 \% I) e! m
string s2 = string.Empty;2 }! o- s6 ] _# E
* }3 J \7 m; C. }" p
if (s == string.Empty) {; d" l4 [% I# p# d
// ( {1 w* K- n z4 q9 K% \; W3 J" e: K
}+ [- Y+ N: O. s! ~ `* G8 S
if语句成立 - r- R3 d# y6 [: P) N
3 V- w r- c9 X( j; d
- a6 k5 u! l1 @( s \判定为空字符串的几种写法,按照性能从高到低的顺序是: 0 \2 T) M0 Z1 _5 Z" o1 `" o + [* Y* f f% u( |5 B: ?& D5 qs.Length == 0 优于 s == string.Empty 优于 s == "" 2 t" o7 t3 n/ S; e- ~
}0 A+ g$ I' `! b x4 t / L2 I- m0 u. L* E- ]关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。