博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中null和""的区别
阅读量:6320 次
发布时间:2019-06-22

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

string是引用类型;

string str = null 没有创建内存空间,str中存放的是空引用指针;
string str = "" 创建了内存空间,str中存放的是指向堆中的指针。

简单地说:

string str ="";
给你一张白纸;
string str = null;
连白纸也没有。

string.Empty就相当于"" 

一般用于字符串的初始化 
比如: 
string a; 
Console.WriteLine(a);//这里会报错,因为没有初始化a 
而下面不会报错: 
string a=string.Empty; 
Console.WriteLine(a); 
或者用于比较: 
if(a=="") 
if(a==string.Empty) 
上面两句是一样的效果。
  string.Empty不分配存储空间
  ""分配一个长度为空的存储空间  
  所以一般用string.Empty
为了以后跨平台,还是用string.empty
在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:
string s = "";
string s2 = string.Empty;
if (s == string.Empty) {
  // 
if语句成立 
判定为空字符串的几种写法,按照性能从高到低的顺序是:
s.Length == 0 优于 s == string.Empty 优于 s == "" 
您关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。

转载于:https://www.cnblogs.com/vmyspace/archive/2012/01/30/2332179.html

你可能感兴趣的文章
POJ 3210 : Coins
查看>>
[转载]Ubuntu下Samba服务器的最简配置
查看>>
vs常用快捷键
查看>>
集合、迭代器
查看>>
sudo权限的设置
查看>>
grep用法
查看>>
hihocoder 1080 线段树(区间更新)
查看>>
Java对象序列化输入输出
查看>>
javaScript在页面中不同地方的调用说明
查看>>
【量子直播室】实时流系统在电商分析产品中的应用
查看>>
Python基本语法
查看>>
iOS 框架 Nimbus
查看>>
连接linux 服务器
查看>>
iOS 之 线程和进程
查看>>
XCode里的模拟器到底在哪里?我的App被放到哪里了?
查看>>
含有中文字符串的截取问题!
查看>>
CSS教程:inline-block在各浏览器的显示
查看>>
sping jar的详细描述
查看>>
将ckeditor封装成一个用户控件
查看>>
Could not load file using Ranorex runtime : General Questions
查看>>