【转载】NULL,””,String.Empty三者在C#中的区别

【转载】NULL,””,String.Empty三者在C#中的区别

(1)NULL
null 关键字是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。那么也只有引用型的变量可以为NULL,如果int i=null,的话,是不可以的,因为Int是值类型的。

(2)””和String.Empty
   这两个都是表示空字符串。只不过””理论上重新开辟内存空间,而String.Empty指向一处。不过优化器会优化的!

   string.Empty不分配存储空间, “”分配一个长度为空的存储空间,所以一般用string.Empty,为了以后跨平台,还是用string.empty。

在C# 中,大多数情况下 “” 和 string.Empty 可以互换使用。比如:

string s = “”;

string s2 = string.Empty;

if (s == string.Empty) {//} if语句成立

(3)判定为空字符串的几种写法,按照性能从高到低的顺序是:

s.Length == 0 优于 s == string.Empty 优于 s == “”

注意:

   1.string str1=”” 和 string str2=null 的区别。

str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,

string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。

 

【转自】https://www.cnblogs.com/liuyaozhi/p/5809521.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119343.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Mysql 多表联合查询效率分析及优化

    Mysql 多表联合查询效率分析及优化1.多表连接类型1.笛卡尔积(交叉连接)在MySQL中可以为CROSSJOIN或者省略CROSS即JOIN,或者使用’,’如:SELECT*FROMtable1CROSSJOINtable2SELECT*FROMtable1JOINtable2SELECT*FROMtable1,table2由于其返回的结果为被连接的两…

  • Nginx 面试 40 问

    Nginx 面试 40 问什么是Nginx?Nginx有哪些优点?Nginx应用场景?Nginx怎么处理请求的?Nginx是如何实现高并发的?什么是正向代理?什么是反向代理?反向代理服务器的优点是什么?Nginx目录结构有哪些?Nginx配置文件nginx.conf有哪些属性模块?cookie和session区别?为什么Nginx不使用多线程?什么是动态资源、静态资源分离?为什么要做动、静分离?什么叫CDN服务?Nginx怎么做的动静分离?Nginx负载均衡的算法..

    2022年10月26日
  • 京东活动+自动运行脚本+签到2021.05.26更新

    京东活动+自动运行脚本+签到2021.05.26更新先下载Node.js运行环境https://nodejs.org/en下载14.15.4版本。WIN7下载12.20的版本https://nodejs.org/dist/latest-v12.x/node-v12.20.1-x64.msi。只需要一路安装就可以。检测是否安装成功:点击开始-运行-cmd(win+R),打开dos,输入“node–version”检查Node.js版本:只要有显示就说明没问题了。每天大概300-400个京豆,有时候现金红包会有6元左右。下载脚本包:https://..

  • java8 stream().map().collect()的Collectors.toList()、Collectors.toMap()、Collectors.groupingBy()的用法[通俗易懂]

    java8 stream().map().collect()的Collectors.toList()、Collectors.toMap()、Collectors.groupingBy()的用法[通俗易懂]  现在有个集合:List<User>users=getUserList();  现在需要将这些user的id提取出来。这个很简单,for循环嘛,谁不会啊(不会吧不会吧,不会有人还不会用for循环的吧)。List<Long>idList=newArrayList<Long>();for(inti=0;i<users.size();i++){  idList.add(users.get(i).getId());}  

  • oracle错误959_oracle12528错误

    oracle错误959_oracle12528错误【错误情况】[oracle@ccdevsvradmin]$expwmap/pass@jackeydbExport:Release8.1.7.4.0-ProductiononFriOct811:28:372004(c)Copyright2000OracleCorporation.Allrightsreserved.Connectedto:Oracle9i…

  • usb眼图测试方法_USB4.0

    usb眼图测试方法_USB4.01、现象HUB芯片电源噪声所引起;USBHUB芯片电压偏置电阻不合适所引起。2、参考电路3、原因分析在眼图测试时发现有一个USB口的眼图有抖动碰到眼图模板,当时经过千辛万苦,屡试不成,都未找到具体原因。只能确定眼图的抖动可能由于电源的噪声所引起,后续多次更换电源的滤波参数和割PCB后才找到由于一路电源1.8VPLL的布局所引起。真是众里寻她千百度,暮然回首,尽在一个HUBcore电源的滤波未做好。未通过模板时眼图如下图(未做任何调试):未通过模板时所对应的PCB布局..

    2022年10月30日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号