string str="" 和string str=null 和string str 有什么区别,分别在什么时候用到?
解决方案 »
- C#中Process调用devenv问题(急)
- 運行水晶報表提示密碼
- windows 服务 与数据问题
- 我用OleDb方式Insert数据到Excel中,然后添加一行,然后再用OleDb方式Select读取数据,为什么新增的一行读不出来?
- C#对csv文本数据的odbc操作问题
- .net中调用word速度慢的问题
- C#如何实现EXE文件传输呢
- C# socket.handler 的问题
- ~菜谱管理~包括菜式管理,顾客投票等等,请大家帮忙。请大家给代码,或给些意见。谢谢!紧急!!!!!!
- 如何把控制台程序制作成后台执行程序?????
- 关于委托的棘手问题 请高人来看看 先行1拜谢了!!
- 请教一下关于CLASS 中STRUCT结构中THIS的用法
一个是空引用,
一个是定义而未声明,应该会有warning
string str=null,表示一个空串,没有占用了空间,
string str 一个是定义而未声明.
不知道我的理解对不.
第二个为空引用
第三个只定义而未被初始化,java中一般会有警告
string str=null,表示一个空串,没有占用了空间,
string str 一个是定义.最好初始化成
string str = string.Empty,养成好习惯呀
string id=Request.Querystring["id"]
id=aaa,不为空,如果地址是:xxx.aspx
string id=Request.Querystring["id"]
id经过if语句判断为:id=null,id!=""
这是怎么回事?所以就是不明白id=null 和id=""的区别?请高手继续解释
string str=null,表示一个空引用,没有占用了空间,
string str 这个我认为和第一个是一样的效果。或string.empty.因为C#里边你不初始化的话会有一个默认值。不知道我想的对不对,
在做TextBox时候就知道了。你不要输入任何东西。如果你写成
if(textBox.text==null)
MessageBox.show();
上边的不会弹出对话框来的,
"" 表示一个空字符串,
所以 null != ""
是aspx中页面之间的传值,因为已经把aaa传过来了,所以id当然就不是空了,
id=“”的意思是id已经在内存中有存储空间了,只不过这个空间里什么都没有。
但是id=null的意思是根本就没有给id在内存中分配空间。此时的id是不能使用的
如果输入地址:http://localhost/web/ua.aspx?id=aaa
string id=Request.Querystring["id"]
id=aaa,不为空,如果输入地址:http://localhost/web/ua.aspx
是同一个页面,只是后面没有参数,
string id=Request.Querystring["id"]
id经过if语句判断为:id=null,id!=""
这是怎么回事?所以就是不明白id=null 和id=""的区别?请高手继续解释
如果输入地址:http://localhost/web/ua.aspx?id=aaa
string id=Request.Querystring["id"]
id=aaa,不为空,这正常啊,应该是这样啊,这个时候是有id这个变量的,且内容为aaa所以id=aaa,不为空 。2:
如果输入地址:http://localhost/web/ua.aspx
是同一个页面,只是后面没有参数,
string id=Request.Querystring["id"]
id经过if语句判断为:id=null,id!=""
这是怎么回事?这个时候参数id是没有的。
所以你接受的时候 id应该为null。但有一点null 和""是不同的,是两个东西。所以第二个情况下没有参数id为null,但null!=""
所以你判断的结果是id=null,但id确实不等于""(因为null和""是两个概念)这没有什么问题啊!!!明白了吧?
这个时候小A 的实体就存在的,指向你老婆的肚子。但这个时候,你还没见到你确切的孩子。只能说,你“有”孩子了。所以小A=“”等哪天他呆不住,冒出来了。
小A 就是那个东西了。也不为空,也不为null了。——好象更乱七八糟的了。
string str=null: 空引用,不引用任何对象。一般用于在方法中存放并返回一个值。
string str : 如果声明为成员字段编译器会给它一个初值null,如果是局部变量编译器会把它当成错误来看待,一般用于成员字段才这样写的,不然你想怎么样?
//-----------------------------
string str = null;你说这个分配了内存没有
=============================
理论上是肯定分配了内存的了,不然的话编译器用什么来辨别null呢。就像这个一样:
int i;
首先,该语句声明了int变量i。编译器不会让我们使用这个变量,(成员字段除外)除非我们用一个值初始化了该变量。但这个声明会在堆栈中给它分配4个字节,以保存其值。
string str=null: 空引用,不引用任何对象。一般用于在方法中存放并返回一个值。
string str : 如果声明为成员字段编译器会给它一个初值null,如果是局部变量编译器会把它当成错误来看待,一般用于成员字段才这样写的,不然你想怎么样?
//-----------------------------
string str = null;你说这个分配了内存没有
=============================
理论上是肯定分配了内存的了,不然的话编译器用什么来辨别null呢。就像这个一样:
int i;
首先,该语句声明了int变量i。编译器不会让我们使用这个变量,(成员字段除外)除非我们用一个值初始化了该变量。但这个声明会在堆栈中给它分配4个字节,以保存其值。
-------------------------------
String 是引用类型;
int 是值类型
两者在内存的结构是不一样的
string str=null,表示一个空引用,没有占用了空间,
string str 这个我认为和第一个是一样的效果。或string.empty.因为C#里边你不初始化的话会有一个默认值。不知道我想的对不对,
在做TextBox时候就知道了。你不要输入任何东西。如果你写成
if(textBox.text==null)
MessageBox.show();
上边的不会弹出对话框来的,
====================================
系统已经自动执行了testBox 空间的构造函数所以你的对话框不会谈出来
int 是值类型
两者在内存的结构是不一样的如果是在C#里面String,int都是引用类型
string a = ""; // now a Type : string.empty (依然是 STRING 类)
string a = ""; // now a Type : string (依然是 STRING 类)[empty 只是一个空值的实例]
string a = "";
a = string.empty; //实际上内存中已创建两个 string.empty
int 是值类型
两者在内存的结构是不一样的
==========================
你的意思是说:“两者在内存的结构是不一样的”就可以推出它不占内存空间?还有,如果有不占内存空间的代码或者不占资源的代码的话,你说它存放哪里呀,存放在空气里?随便打一行代码,只要它被编译执行过,它就一定占用过内存!如果有不谁写出来的代码执行时是不占资源的,那么此人肯定是在意念中展开代码的编译与运行的。