null这个东西,真的是很讨厌,虽然它叫做连空白也没有。
但,没有就没有,干麻报错。
举个例来说:
我有一个 class 叫person ,里面有人名,年纪二个字段
若我查询 人名叫josn 的就怎样怎样。
假设这个person是null
if(person.name == "josn"){怎样。}
就错,为什么不直接跳过去就好,因为我只是判别呀。
而非要写成
if(person != null && person.name == "josn"){怎样。}
就这样,就要多几个字,很讨厌
由上面的例子,person 是null 那在person.name 当然就不可能为josn,就
跳过去就好,干麻要报错。
由其是dictionary物件,为了安全,非要一个containskey,先看有没有再处理。
作者: yeo1987 (Archie) 2017-05-05 23:01:00
可改用person?.name == "json" / Dictionary.TryGetValuejosn, 打错=.=
若person是null,name也是null的话,就没办法了吧tryGetValue,是好一点,但还是不能直接用就是还是要多一层判别
作者: e23882 (呆呆要不要买降有) 2017-05-06 01:45:00
NullReferenceException
逻辑问题,就像是我想透过看我钱包这个动作来看我还有多少钱,但其实我根本没有钱包
作者:
IKAFIRE (没有)
2017-05-06 11:22:00拜托不要用try catch做这种简单的判断
作者:
skitty (aki)
2017-05-06 21:59:00.ToString
作者:
testPtt (测试)
2017-05-07 00:23:00那你就不要让他null不就好了
作者:
jizang (阿鲁米)
2017-05-07 00:42:00宣告马上给初始值。
作者:
ssccg (23)
2017-05-07 02:59:00没有值就是null,不是什么东西都适合有初始值是说 ?. 已经很方便了啊
作者: bizer (bizer) 2017-05-07 04:39:00
没有人又怎会有名子,写程式本来最好就严谨点,bug才比较少
查到一个GetValueOrDefault()可以试试
作者:
jizang (阿鲁米)
2017-05-07 11:22:00给初始值 String.Empty 是一种习惯!编译器都会给警告~
其实理论我懂,只是觉得null 不等于json干麻要报错
作者:
Litfal (Litfal)
2017-05-07 20:54:003F在说什么...name也是null又怎样?
作者:
uranusjr (â†é€™äººæ˜¯è¶…級笨蛋)
2017-05-08 02:30:00请爱用 null object pattern, 或改写 Objective-C
作者:
s4300026 (s4300026)
2017-05-08 18:37:00只有我喜欢null吗? 我一直困扰著没有任何东西代表没有东西,就像是-1与1之间的 “没有”般的喜爱,与其自己定义,倒不如有个固定的东西可以指派。 举例来说,如果你要求输入自然数为变量,你可能会在意没有输入值的情况,或许任何负数都可以代表这个情形,但你不觉得交由null是更好的一件事情吗?
作者:
ssccg (23)
2017-05-08 20:44:00不要跳exception的话就很好
想过这个问题,觉得让((person)null).name == (string)null好像可以,但又不想自己写compiler,所以发现C#有?.的语法时有惊喜到。但dictionary会分不清d[key].value==null及d[key]==null上一句错了,dictionary确认有没有此key很正常吧
作者:
s89227 (Kei)
2017-05-12 21:12:00遇到NullException表示你的逻辑设计有问题,Compiler才讨厌你吧,好心提醒你没好报!
作者:
ssccg (23)
2017-05-13 06:24:00null exception是runtime的吧? 跟compiler有关系?
作者:
s89227 (Kei)
2017-05-15 01:31:00……对欸,我脑袋一时糊涂了,谢谢楼上提醒QQ
当person == null的时候,别说person.name是否等于john了,person是无法读取name属性的一般来说我会先在外面判断null,不是才进去做事是的话直接置底报错或跳过,因为有时候null是代表那里就是真的没东西,而不是不是你要的东西如果你没去检查是否有旧的物件残留,有时候会有逻辑上的盲点
作者:
AWEN221 (Larry)
2017-05-31 14:45:00不喜欢就自己覆写运算子......等有天你自以为都有赋值CODE量又很多 就需要它报错了