博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
String.Empty、string=”” 和null的区别
阅读量:5841 次
发布时间:2019-06-18

本文共 1077 字,大约阅读时间需要 3 分钟。

String.Empty是string类的一个静态常量;

String.Empty和string=””区别不大,因为String.Empty的内部实现是:

public static readonly string Empty;//这就是String.Empty 那是只读的String类的成员,也是string的变量的默认值是什么呢?//String的构造函数static String(){    Empty = "";//Empty就是他""    WhitespaceChars = new char[] {        '\t', '\n', '\v', '\f', '\r', ' ', '\x0085', '\x00a0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',        ' ', ' ', ' ', ' ', '', '\u2028', '\u2029', ' ', ''     };}

  

 再看一段代码:

string s1 = "";string s2 = string.Empty;if (s1 == s2) {    Console.WriteLine("一模一样!");}    // 结果都是TrueConsole.WriteLine("".Equals(string.Empty));Console.WriteLine(object.ReferenceEquals(string.Empty, ""));

既然String.Empty和string=””一样,同样需要占用内存空间,为什么推荐优先使用String.Empty ?

string.Empty只是让代码好读,防止代码产生歧义,比如说:

string s = "";  string s = " ";   这个不细心看,很难看出是空字符串还是空格字符。

 

如果判断一个字符串是否是空串,使用

if(s==String.Empty)和if(s==””)的效率是一样的,但是最高效的写法是if(s.Length==0)

string.IsNullOrEmpty的内部实现方式:

public static bool IsNullOrEmpty(string value) {
if (value != null) { return (value.Length == 0); } return true;}

   

而string str=null则是表示str未指向任何对象。

转载地址:http://yvvcx.baihongyu.com/

你可能感兴趣的文章
String类
查看>>
西门子_TDC_数据耦合小经验
查看>>
接口测试与postman
查看>>
LINQ To XML的一些方法
查看>>
[LeetCode] Copy List with Random Pointer
查看>>
openstack部署之nova
查看>>
JS组件系列——表格组件神器:bootstrap table
查看>>
存储过程Oracle(一)
查看>>
log4j日志归档
查看>>
Java笔记01——IO流
查看>>
mysql遇见error,1049
查看>>
NYOJ311 完全背包
查看>>
codevs——2822 爱在心中
查看>>
Python基础班---第一部分(基础)---Python基础知识---认识Python
查看>>
JAVA MAC 配置
查看>>
1134 最长上升子序列 (序列型 DP)
查看>>
js冒泡排序
查看>>
第一次作业 4班卢炳武
查看>>
抽象类的调用
查看>>
使用硬盘,安装双系统,Win7+CentOS
查看>>