| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1831 人关注过本帖
标题:求教老师:变量的 赋值 - “ ” 或 null
只看楼主 加入收藏
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:20 
求教老师:变量的 赋值 - “ ” 或 null
求教老师:

c#的 变量赋值,比如:

int a = " ";

int b = null;

我的问题是,什么情况下 赋值 “ ”,什么情况下 赋值 null ?

(我知道,如果赋值为 “ ”,内存会对这个变量留出空间;而 null ,则内存没有。)

谢谢答疑老师先!
搜索更多相关主题的帖子: null 空间 
2013-10-19 15:30
afdoa83
Rank: 4
等 级:业余侠客
威 望:7
帖 子:43
专家分:262
注 册:2012-7-31
收藏
得分:0 
String类型变量可以赋值" "。
可空类型变量可以赋值null。
例如
string txt = " ";
int? Enum = null;  //int? 是预定义类型int的可空形式。
详细查阅C#可空类型
2013-10-19 20:13
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
感谢 afdoa83 老师回复!!!

我试了一下,字符串类型 既可以 赋值为 "",也可以赋值为 null,即 string a = ""; 或 string a = null;

我搞不懂的是,什么情况下 使用 "",什么情况下 使用 null 呢???

我查了MSDN,里面好像没有对 "" 赋值做解释?

谢谢 afdoa83老师 !!!

[ 本帖最后由 learnerok 于 2013-10-19 21:53 编辑 ]
2013-10-19 21:50
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
大部分情况下 " "代表一个空格  而""则代表null

DO IT YOURSELF !
2013-10-19 22:02
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
感谢 wp231957老师 帮助!!!

您的意思是,string a = ""; 或 string a = null; 这两个 意思是相同的?

但好像是,如果赋值 为 "" ,则内存会分配空间;而null,则内存不会分配空间。

所以他们应该是有区别的,只是不懂何种情况 如何使用啊?!
2013-10-19 22:08
afdoa83
Rank: 4
等 级:业余侠客
威 望:7
帖 子:43
专家分:262
注 册:2012-7-31
收藏
得分:0 
null代表着未被初始化
2013-10-20 19:23
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
感谢 afdoa83大侠的帮助!!!

能再 详细点说明一下,声明 字符串 变量 时,何时用 "",何时用null 吗?

比如说,您是什么情况下 用"" ,什么情况下 用 null 的?

谢啦!!!

[ 本帖最后由 learnerok 于 2013-10-20 20:11 编辑 ]
2013-10-20 19:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
從你寫過的程序的經驗,覺得需要超出整形數集表達一個整型數據的情形是什麽?也就是說,在什麽情形下需要一個int數據表示它是無效的數據?考慮如下情形:對一個整型數據,我們經常用0或-1來表示這是結束或特殊情況(比如出錯),但問題是在某些場合,0和-1也是合法的數據,你不能佔用這樣的數據去表示出錯或特殊情形,那麽,null就派上用場了。

但是要注意:C#儘管允許給値類型數據賦値null,但本質上null是對引用型數據的引用,當値數據被暗中當引用數據使用時,會有裝箱/拆箱操作,是會影響效率的。一般正常的代碼,極少這樣用。在程序經驗不多的時候,探討這種問題屬於偏門,沒多大意義。

int與string不同,前者是値類型數據,後者原先就是引用型數據,天然可以用null,而前者用null是要作特殊處理的。語言的糖果雖然很甜,但不要濫用。

[ 本帖最后由 TonyDeng 于 2013-10-20 23:44 编辑 ]

授人以渔,不授人以鱼。
2013-10-20 23:37
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
感谢 TonyDeng老师 的指导帮助,我要好好读一下理解您的回复内容。!!!

接受到您好多次的帮助,感动中!!!


2013-10-21 00:49
learnerok
Rank: 2
等 级:论坛游民
帖 子:387
专家分:47
注 册:2011-5-21
收藏
得分:0 
我试了一下,字符串类型 既可以 赋值为 "",也可以赋值为 null,即 string a = ""; 或 string a = null;

我搞不懂的是,什么情况下 使用 "",什么情况下 使用 null 呢???

我查了MSDN,里面好像没有对 "" 赋值做解释?

=====================

TonyDeng老师,您能帮我指点一下上面的问题吗,谢谢您先!!!
2013-10-21 00:59
快速回复:求教老师:变量的 赋值 - “ ” 或 null
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037976 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved