【String.Empty,NULL和""的区别】
9 y0 x7 V6 I% ?8 E* {- U( \! b) m# y! m4 a6 z
string.Empty不分配存储空间
( [: J4 F: H6 Q' H! d# M ""分配一个长度为空的存储空间 2 @; c* F" N9 B/ x8 z; z
所以一般用string.Empty
* w) Y) K) ~% |- |) _+ F1 J0 f& h" m$ R
为了以后跨平台,还是用string.empty
( w, o6 c/ A( v, K
# J, _4 M( x% y4 [在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:
W. v9 L: b& F6 `
/ ~, f! W. u6 ] string s = "";" `; ?" s4 x' C. R, l) L* B6 i
string s2 = string.Empty;' t) O6 U# s- V9 ~* Q
. W _1 x$ n8 [6 R
if (s == string.Empty) {# h5 A* L( z' P& f1 v6 ^! Y
// . k! ^0 y2 O1 x' I& [
}+ E: k S+ \, z& j4 C" |
if语句成立
" J" E8 B) _' G. S s* W
: U- o8 ~9 U7 \& E( c2 h1 g
X3 |. l( N E2 d# X, L判定为空字符串的几种写法,按照性能从高到低的顺序是:
! A( w3 ^6 b* _% U
" h4 w4 F4 W4 Qs.Length == 0 优于 s == string.Empty 优于 s == ""
" c$ m- s5 k/ t, u0 _8 `, U# r
' ? {" a: l& i/ u
+ ]" ?$ g7 Q, q2 W3 c* h关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。 |