【转载】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

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

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

(0)
上一篇 2021年11月20日 下午11:00
下一篇 2021年11月21日 上午6:00


相关推荐

  • Java中compareTo用法

    Java中compareTo用法Java中的compareto方法,返回参与比较的前后两个字符串的asc码的差值Stringa="a";Stringb="b";System.out.println(a.compareTo(b));输出值-112345Stringa="b";Stringb="a";System.out.println(a.compareTo(b));输出值1…

    2022年7月13日
    28
  • Verilog HDL 、VHDL和AHDL语言的特点是什么?_自助和助人区别

    Verilog HDL 、VHDL和AHDL语言的特点是什么?_自助和助人区别如果你搜索Verilog和VHDL的区别,你会看到很多讨论这场HDL语言战争的区别页面,但大多数都很简短,没有很好地举例说明,不方便初学者或学生理解。Verilog和VHDL之间的区别将在…

    2025年11月24日
    4
  • C# 多线程使用lamda表达式编程

    C# 多线程使用lamda表达式编程C#多线程的实现方式使用的thread类1、最容易实现方式:Threadt=newThread(newThreadStart(ThreadFunction));publicvoidThreadFunction(){Console.WriteLine("我是线程!");}2、lamda表达式实现:Threadt=newThread(()=>Co…

    2022年5月29日
    44
  • 集合转数组的方法_数组的定义方式

    集合转数组的方法_数组的定义方式数组转集合在java中的数组有两种情况,一种是存放基本数据类型的数组,一种是存放对象类型的数组。对于存放对象类型的数组,直接使用Arrays.asList方法即可对于存放基本数据类型的,如果我们单纯使用Arrays.toList的方法去转换,只会得到对象类型为int[]的集合。这样子每一个元素都是一个基本数据类型数组的对象,而不是我们要存放的数据。publicstaticvoidmain([]args){ int[]a=newint[10]; for(inti=0;i<a.

    2026年1月24日
    6
  • swoole是如何实现任务定时自动化调度的?

    swoole是如何实现任务定时自动化调度的?

    2021年10月31日
    77
  • linux ldd命令源代码,Linux中ldd命令的用法详解[通俗易懂]

    linux ldd命令源代码,Linux中ldd命令的用法详解[通俗易懂]Linux中ldd命令主要用于查看程式运行所需的共享库,那么ldd命令具体要如何使用呢?下面小编就给大家介绍下Linux下ldd命令的使用方法,感兴趣的朋友一起来学习下吧。ldd命令用于判断某个可执行的binary档案含有什么动态函式库LinuxLdd参数说明:–version  打印ldd的版本号-v–verbose  打印所有信息,例如包括符号的版本信息-d–data-relo…

    2022年5月6日
    215

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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