【String.Empty,NULL和""的区别】- I5 p. Y. f: R; d1 b
! f5 `- N% v: ^! [; d* astring.Empty不分配存储空间" \ H q' s/ Y3 I3 y
""分配一个长度为空的存储空间 9 @7 ]( M' Y" N- |% C7 a0 ^. j
所以一般用string.Empty
' x) l# [# ~) n8 k, E: X i4 w2 R/ w0 N# z* Z& C8 m \
为了以后跨平台,还是用string.empty
# w% ~7 L3 Z# f( k0 j2 A7 s F
. g) _1 y6 k" U: v) W( M在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:$ K4 M3 s5 p2 s/ C: d9 |( j
4 v6 M6 m! O: G4 H
string s = "";
2 q8 b$ l9 l: p! g; Z$ cstring s2 = string.Empty;0 t6 N5 L5 \ Y# b3 j
; C: r: H1 B/ ~, F! D- E
if (s == string.Empty) {
2 ?3 o' d) L2 h //
( F0 G5 T0 I; ~. [* i}
2 X. ]* n* j5 |* c0 R7 Cif语句成立
6 X, @6 r; `4 `6 o9 x. A% y4 X0 r1 e1 B- o/ X( X
% \& ~, ~: i4 E% B) d* R9 M7 C判定为空字符串的几种写法,按照性能从高到低的顺序是:! Y7 U3 R- u) q- ~
& N/ g3 @$ q5 Q3 D9 a+ x2 k7 {4 q
s.Length == 0 优于 s == string.Empty 优于 s == "" ! C5 H2 g& R: I2 E- k, P- Z! G
- {" x4 H% g* R9 }
?/ ?4 E7 L2 R; N; \3 w! O3 O. v关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。 |