【String.Empty,NULL和""的区别】( e# U# l( {* p/ J
; n; L2 Y7 c0 M' |5 n+ e; v
string.Empty不分配存储空间
+ J0 x! j% l' f! ?, o ""分配一个长度为空的存储空间 6 R: e x/ R( I
所以一般用string.Empty
, A; U1 M x6 _7 `5 C: {* J" c5 I, w2 z
为了以后跨平台,还是用string.empty
2 O. k3 g7 P) x
2 |5 H$ h4 r7 M1 \8 g/ _6 ~' e在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:
4 [% n( K% m2 f: o/ S
( c# F' T& {" r# ~ string s = "";
& S' z6 O" [9 T0 K& ^string s2 = string.Empty;
' {: V) ?: `( i' O5 R7 X9 n, M
& n4 G6 f2 `( G7 V0 c6 {" W+ Jif (s == string.Empty) {; k) | [, f! N2 G2 o6 V# C3 {4 g
//
) j' y! U: w) \- K}
5 q: o" v& u9 g% {3 p4 d; C) Sif语句成立
: K0 m4 f @8 y% |
* F- d( Z; P# M% ~" g
2 w$ I6 @9 Z1 Q8 X判定为空字符串的几种写法,按照性能从高到低的顺序是:/ Z4 ~$ ?/ O4 w
; n6 J4 b! \7 _0 V+ {1 m
s.Length == 0 优于 s == string.Empty 优于 s == ""
9 }4 e/ r3 K! M" g1 \* |; y7 e" c% Y* N" ~% G2 X
- g3 R o {% T; r) b6 X关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。 |