天天看点

C#中null,"",string.Empty的区别

null是空引用,表明string不指向任何字符串的引用

string.Empty和“”没什么太大区别

主要可能的区别是string.Empty是string的静态字段,所以常驻在字符串的缓存中,而“”则不一定

比如

string a=string.Empty

string b=string.Empty

则a和b指向的肯定是同一对象

string a=""

string b=""

a和b有可能指向同一对象,也有可能指向了不同对象,但对象的内容都是""

 用杯子装水举例, 

Null表示这个杯子根本不存在! 

“”表示有杯子,但杯子中是空的,没有水。。。 

null和string.Empty都是空引用,

不过null没有在磁盘上开辟空间,而string.Empty在磁盘上开辟了空间,占据了一个位子