【String.Empty,NULL和""的区别】
8 V; T; ^( [2 h" _! s
; O$ m5 B- A4 y, o( Z+ astring.Empty不分配存储空间, \3 E6 k. P# K, S8 l
""分配一个长度为空的存储空间 ( f$ Q: H m( `2 ]8 h$ w
所以一般用string.Empty7 A* [: i3 M9 g* F& |8 E2 G$ q* [
2 @0 ?3 _! Y% W r* e1 a; u为了以后跨平台,还是用string.empty/ j( }+ y* O" C
* \) x% ^4 F2 ~在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:5 A- |4 c( E' _& k" W1 m/ i0 x
* Y' b: {' k; g" s z& G" n
string s = "";6 Z- u! t3 j2 X1 O9 I" g$ B
string s2 = string.Empty;5 G) t7 |) a- z9 F" @" d1 T' R
L2 Q4 ]2 G. l' Pif (s == string.Empty) {
0 w5 z3 \1 f$ R // 6 R9 _' T# Y# [ w9 V5 A
}
& J& @3 f" U. q, M. Uif语句成立
; d# M+ Z/ y; \9 y" D" \; `' {- B" j. d8 q' d6 p: Q( J
. L) a3 q2 Y) O3 T9 w d
判定为空字符串的几种写法,按照性能从高到低的顺序是:
! f D) p* K, W$ X, J0 `( ~6 B2 a% F' h
s.Length == 0 优于 s == string.Empty 优于 s == ""
7 p& f! ^8 O- n
6 d& l) b# |5 f( h
8 G7 Y) c8 Z4 S$ F关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。 |