“”和null的区别就是“”分配存储空间,null没分配存储空间
string.empty ,你转到定义发现是这么写的,public static readonly String Empty = "";
也就是说string.empty也是分配了一片存储空间,该地址指向堆内存的一块长度为0的区域,该区域存放空字符串"".也就是说""和string,empty效果是一样的.那么,它们的区别在哪里呢?在性能上.string.empty在语法上进行了优化,当编译msil时,会直接把改字符串引用指向系统""空间上;而""则先在字符串表查找是否有"",然后才指向它.所以string.empty的性能优于“”.当判断字符串是否为空时,性能上str.length==0>str==string.empty>str=="". |