null和String.Empty的区别 null和String.Empty的区别是什么是不是二者可以完全替代请详细说明,谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 完全不可以替代,就不是一个东西。null是空引用,string.Empty是空字符串 String.Empty 和 “” 一样 是指字符串 String.Empty不从新分配内存空间 string aaa="" 重新分配内存空间null 与 完全不一样 要做判断可以用string.isnullEmpty() 不可以替代null是空引用string.Empty是空字符串 不一样,比如说你定义一个 string strEmp = "" 和一个string strNull = null .你可以调用strEmp的方法,如strEmp.Trim(); 但如果用strNull调用Trim()方法就会报错,因为strNull没有实例化,还不是对象,没有对象怎么会有方法呢 完全两码事,null:是空引用,对于一个引用类型而言,只在栈中为其分配一小块内存,但不指向堆,压根就不知道指向哪(就像没人要的野孩子)String.Empty :是空字符串,指向堆中某一块区域,但是这个堆中的内容是空字符串,神马内容都没有(这个孩子家里就它一个了,没有其它任何人了)两者根本不能等同. DBNull.value:数据库中的未初始化值string.Empty:空字符串null:空引用 if(TextBox1.Text ==string.Empty )与if(TextBox1.Text ==null)那效果是一样的吧,我试过,后者没有报错是不是一样的? 不一样...TextBox.Text天然不可能为null,当然没错...但是逻辑是错的,TextBox1.Text==null恒为true... TextBox1.Text==null恒为false...更正一下... null是空引用,对象是不存在的。string.Empty 对象存在,是空字符串 最直接的: Empty不分配存储空间 NULL分配一个长度为空的存储空间 一般用string.Empty 不过貌似string一般声明除非定义成null不然默认都是""的吧 所有引用类型的初始值都为null还是string.Empty 还是"" ?? 所有引用类型实例的初始值都为null,包括字符串...字符串也是引用类型...再重复一次:赋null值不分配任何内存,实例在栈上为引用分配的内存是另一码事...赋string.Empty值就是赋""值,""是常量,string.Empty是预定义的只读变量,指向字符串常量""...string.Empty就是""... 一个是内存上null一个是字节为空 这样说吧,string temp = "a";上面的意思是这样的:1、在堆中创建一个对象 temp2、在栈中开辟一块空间存放引用,3、再到string池中放一个“a”;4、最后通过引用把对象temp与池中的值“a”连接起来,那么temp的值就是"a"了然而 string temp = null;表示1、在堆中创建一个对象 temp2、引用为空 ,可以理解为没有为对象分配 引用;3、也没有分配值(当然,根本 不用分配值,因为没有引用,就不知道指向常量池中的哪个值)string temp = string.Empty;1、在堆中创建一个对象 temp2、在栈中开辟一块空间存放引用,3、通过引用 指向 常量池中一个空的值;希望LZ能够理解 null 是空(引用),“无效的”string.Empty是指向系统预定义的常量,这里的“指向”是指在内存栈上会有一个引用,效果同""是一样string s = null, str = string.Empty;s.Length //抛空引用异常str.Length //结果返回0 关于打印的bug!!!!!!!!!!!!!!!! linq to entity三层架构的疑问 winformC#socket的问题 类似QQ的代理 在线程上调用自己的方法,结果无法返回正确的结果 我现在对C# 应该学点什么知识感觉很迷茫。。迷茫的我 表格横向显示的问题,小山,秋枫,目标是五星等热心高手帮帮忙 一个大家都解决不了的小问题。 子窗体如何调用主窗体的方法并作用于子窗体?? ListView里图标的边距怎么设置? C# 中构造函数如何相互调用的 请问如何改变TabControl的顺序啊? C#里面的我不懂的问题,真的是汗流啊
null 与 完全不一样
null是空引用
string.Empty是空字符串
null:是空引用,对于一个引用类型而言,只在栈中为其分配一小块内存,但不指向堆,压根就不知道指向哪(就像没人要的野孩子)
String.Empty :是空字符串,指向堆中某一块区域,但是这个堆中的内容是空字符串,神马内容都没有(这个孩子家里就它一个了,没有其它任何人了)两者根本不能等同.
string.Empty:空字符串
null:空引用
,我试过,后者没有报错
是不是一样的?
string.Empty 对象存在,是空字符串
Empty不分配存储空间
NULL分配一个长度为空的存储空间
一般用string.Empty
一个是字节为空
string temp = "a";
上面的意思是这样的:
1、在堆中创建一个对象 temp
2、在栈中开辟一块空间存放引用,
3、再到string池中放一个“a”;
4、最后通过引用把对象temp与池中的值“a”连接起来,那么temp的值就是"a"了然而 string temp = null;
表示
1、在堆中创建一个对象 temp
2、引用为空 ,可以理解为没有为对象分配 引用;
3、也没有分配值(当然,根本 不用分配值,因为没有引用,就不知道指向常量池中的哪个值)string temp = string.Empty;
1、在堆中创建一个对象 temp
2、在栈中开辟一块空间存放引用,
3、通过引用 指向 常量池中一个空的值;希望LZ能够理解
string.Empty是指向系统预定义的常量,这里的“指向”是指在内存栈上会有一个引用,效果同""是一样
string s = null, str = string.Empty;
s.Length //抛空引用异常
str.Length //结果返回0