看到很多代码在判断条件都是这种形式,其实我也清楚object!=null(object==null)是一样的,只是不太明白他们为什么要这么写,知道原因的告诉我一下,谢谢
不管是null!=object还是object!=null,在比较的时候都会读取一次object的值。
把null写左边其实可以防止编程出现的低级错误,你用不等于(!=)不好说明,改用等于。
if(object == null)这个语句有时候没注意就会写成:if(object = null)//少了个等号
这样在有的语言中编译是不会出错的,而在运行中结果就不知道了。。
但是你把null写在左边,null其实相当于一个常量,你对常量赋值编译的时候就会报错,这样就能防止这种错误的发生了:
if(a == 5) //这是比较
if(a = 5) //能执行,不过C#里有检测这种错误
if(5 = a) //编译就报错
把null写左边其实可以防止编程出现的低级错误,你用不等于(!=)不好说明,改用等于。
if(object == null)这个语句有时候没注意就会写成:if(object = null)//少了个等号
这样在有的语言中编译是不会出错的,而在运行中结果就不知道了。。
但是你把null写在左边,null其实相当于一个常量,你对常量赋值编译的时候就会报错,这样就能防止这种错误的发生了:
if(a == 5) //这是比较
if(a = 5) //能执行,不过C#里有检测这种错误
if(5 = a) //编译就报错
温馨提示:答案为网友推荐,仅供参考
第1个回答 2018-04-26
不管是null!=object还是object!=null,在比较的时候都会读取一次object的值。把null写左边其实可以防止编程出现的低级错误。具体原因如下:
1、if(object == null)这个语句有时候没注意就会写成:if(object = null)//少了个等号这样在有的语言中编译是不会出的。
2、把null写在左边,null其实相当于一个常量,你对常量赋值编译的时候就会报错,这样就能防止这种错误的发生了。
3、if(a == 5) //这是比较。
4、if(a = 5) //能执行,不过C#里有检测这种错误。
5、if(5 = a) //编译就报错。
本回答被网友采纳第2个回答 2013-08-03
object!=null,这种形式,会导致判断之前先去读取object的信息,然后再判断是否null
而null!=object这种形式,不会导致读取object信息,从而提高判断速度
一般来说不用考虑非写成后者,但对于性能要求高的系统来说就要考虑用后者了。
而null!=object这种形式,不会导致读取object信息,从而提高判断速度
一般来说不用考虑非写成后者,但对于性能要求高的系统来说就要考虑用后者了。
第3个回答 2013-08-03
null就是啥都没有,譬如,而空格、空字符串、0等都是有实际值的对象,与null当然有质的区别了。