【string.empty,null和""的区别】
" g, x# m4 g9 ]# ?; v
9 f4 e' h4 l' r6 d4 a' w3 o4 h; [string.empty不分配存储空间
& v7 a! f ?1 v( e/ r; w ""分配一个长度为空的存储空间 , u9 l" r; f) k$ h& p$ c1 m
所以一般用string.empty
( x3 o5 `6 ?) i7 _6 j" k& v- a4 u; d0 a2 m
为了以后跨平台,还是用string.empty
$ {; l9 f" g% }8 h& z% ~7 {
0 [2 b* {0 a, u" o" t在 c# 中,大多数情况下 "" 和 string.empty 可以互换使用。比如:3 c6 `' h( ~, p) b& d6 c
) `& {2 y1 x5 \2 g1 q: a; u string s = "";' a, e' r3 j: s9 v; v7 o4 k" n
string s2 = string.empty;
1 j9 e) s0 h6 d- a& `* f! t3 ^( {. n
if (s == string.empty) {& u; p5 o' ]' b0 d2 a5 q
//
0 |# y% f% }) b2 `0 }7 y}/ b& k) j t, z* {4 c5 h, w- r$ y
if语句成立 1 ]) a# \% p) a( k2 @1 d
$ e, r" q4 `% e! \
" |% g7 y) m `9 {: u判定为空字符串的几种写法,按照性能从高到低的顺序是:
_2 \) ]1 b% ~" z2 q4 |5 v. c; c7 w" p; v- {0 d: h
s.length == 0 优于 s == string.empty 优于 s == "" 8 x7 _, x/ s, o2 s$ n8 y
c$ e0 n' ?2 g' w: l/ j e. d
' p) u# p$ r5 r$ y: d关于string.empty和null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= string.empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textbox1.text的值为零长度字符串 ""。 |