社区
C#
帖子详情
关于在判断条件中定值在前在后的问题
yingzhilian2008
2009-04-28 09:58:34
判断条件中
例如if(对象!=null) 和if(null!=对象)
if(txtBox.Text.equals(""))和if("".equals(txtBox.Text))这些到底有什么区别,
那种写法比较好,
为什么要这样写,
能避免什么问题!
望达人们帮忙!
...全文
196
22
打赏
收藏
关于在判断条件中定值在前在后的问题
判断条件中 例如if(对象!=null) 和if(null!=对象) if(txtBox.Text.equals(""))和if("".equals(txtBox.Text))这些到底有什么区别, 那种写法比较好, 为什么要这样写, 能避免什么问题! 望达人们帮忙!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wartim
2009-04-28
打赏
举报
回复
虽然很多书里都写
if(null!=对象)
但我喜欢用
if(对象!=null)
这个比较符合自然思维,上面那个太古怪了,完全的程序员思维也不好
ceamky
2009-04-28
打赏
举报
回复
个人认为就是防止==和=的误写。
以及值类型和引用类型的相等比较。
请高手解答。
学习中……
我姓区不姓区
2009-04-28
打赏
举报
回复
至于调用Equals方法的时候,就要先判断调用这个方法的对象是否为空了,如果为空,则会报“未将对象引用设置到对象实例”的错误
我姓区不姓区
2009-04-28
打赏
举报
回复
[Quote=引用 2 楼 ericzhangbo1982111 的回复:]
例如if(对象!=null) 和if(null!=对象)
用
if(null!=对象) 比较是正确的
因为用if(对象!=null) 比较的话。你的对象可能是null的
所以也是就说你的比较可能是这样的
if(null!=null)
所以会出错。
[/Quote]
不可能会出错的,这里!=运算符比较左右两个操作数,看它们是否引用相等,而没有调用对象的任何成员
所以==和!=两边的操作数放在哪边是一样的
yingzhilian2008
2009-04-28
打赏
举报
回复
这里有人说是if(null!=对象)写法比较好一点
而且很多高人写的例子也是用的这种形式
我就是不知道能避免什么!
jiyan1221
2009-04-28
打赏
举报
回复
[Quote=引用楼主 yingzhilian2008 的帖子:]
判断条件中
例如if(对象!=null) 和if(null!=对象)
if(txtBox.Text.equals(""))和if("".equals(txtBox.Text))这些到底有什么区别,
那种写法比较好,
为什么要这样写,
能避免什么问题!
望达人们帮忙!
[/Quote]
剛剛試了一下,沒什么區別,可以通用的
ericzhangbo1982111
2009-04-28
打赏
举报
回复
在java里面 null比较会出错。
c#里面不会
但这样就可能出错。
if(
txtBox.Text
.equals(""))
txtBox.Text==null
而null是不可能操作的。
所以
txtBox.Text.equals会出错。
表达式是没有错误的
就是多了一些考虑而已。
ztenv
2009-04-28
打赏
举报
回复
null!=object///是C的风格,
waterspace
2009-04-28
打赏
举报
回复
if(对象!=null) 和if(null!=对象) 没有区别吧.本来是C和C++里为了防止把==错写成=用的
equals可以防止参数为null
if("".equals(a))
等于 if (a != null && a.equals(""))
hm020
2009-04-28
打赏
举报
回复
[Quote=引用 2 楼 ericzhangbo1982111 的回复:]
例如if(对象!=null) 和if(null!=对象)
用
if(null!=对象) 比较是正确的
因为用if(对象!=null) 比较的话。你的对象可能是null的
所以也是就说你的比较可能是这样的
if(null!=null)
所以会出错。
[/Quote]
那按你所说 对象可能是NULL时, 不也是 if(null != null<对象>)
Garnett_KG
2009-04-28
打赏
举报
回复
将变量写在前面, 可能是出於怕出bug的原因吧. 有时候 == 总是会不自觉的写成 = ,这个bug在C里面可是很难查的
不过C#的IDE比较牛b,会自动提示。
yangqidong
2009-04-28
打赏
举报
回复
如果是这种情况
bool b1 = false;
if(b1==true) 和 if(true==b1)
相比,第二种比较好,因为用户可能漏掉一个=号,此时第二种编译器无法通过编译,
而第一种可以通过编译,这样你无法在编译时找到错误了
zealot1021
2009-04-28
打赏
举报
回复
if(对象!=null) 和if(null!=对象)
应该是一样的吧,不过这样比较只能比较它们指向的内存是否相同
不能比较它们的值是否相等,equals也是一样,都是比较指向的位置
我一般比较字符串的话用compareTo,
if(txtName.Text.trim().compareTo("张三")==0)
{
==0代表相同
}
hm020
2009-04-28
打赏
举报
回复
学疏才浅,个人认为没什么区别.
望高手解答
yangqidong
2009-04-28
打赏
举报
回复
在C#里面没有区别
ericzhangbo1982111
2009-04-28
打赏
举报
回复
if(txtBox.Text.equals(""))和if("".equals(txtBox.Text))
是一样的道理
这你可以看看编程开发规范。
ericzhangbo1982111
2009-04-28
打赏
举报
回复
例如if(对象!=null) 和if(null!=对象)
用
if(null!=对象) 比较是正确的
因为用if(对象!=null) 比较的话。你的对象可能是null的
所以也是就说你的比较可能是这样的
if(null!=null)
所以会出错。
和光数智
2009-04-28
打赏
举报
回复
绑定 同等答案
yingzhilian2008
2009-04-28
打赏
举报
回复
没有人回答了嘛!
zzxap
2009-04-28
打赏
举报
回复
对象!=null
加载更多回复(2)
计算机的范围函数,技巧:excel中
判断
多个
条件
区间值的函数方法
在工作表中,需要根据D2:E6单元格区域中等级与等级之间的对应关系,返回A列中的分数所属的等级等级。今天,我将教您如何
判断
多个
条件
间隔的值。Excel中
判断
多个
条件
间隔的值的功能方法Excel中
判断
多个
条件
间隔的值的方法图1绩效等级的对应关系如下。●60分以下:不及格●60分以上(包括60分),80分以下:中等。●80分或更高(包括80分),90分或更低:成绩良好。●90分或以上(包括90分):优...
Hesse矩阵极大极小值
判断
Hesse矩阵正定、负定,极大值极小值
判断
异常值
判断
与识别检验处理
异常值概念 异常值是指一组测定值中与平均值的偏差超过两倍标准差的测定值,与平均值的偏差超过三倍标准差的测定值,称为高度异常的异常值。 在处理数据时,应剔除高度异常的异常值。异常值是否剔除,视具体情况而定。在统计检验时,指定为检出异常值的显著性水平α=0.05,称为检出水平;指定为检出高度异常的异常值的显著性水平α=0.01,称为舍弃水平,又称剔除水平。 异常值
判断
判断
异常值的规则: (1)标准差...
矩阵是否正定/负定、半正定/半负定的
判断
矩阵是否正定/负定、半正定/半负定的
判断
一、常用定义 正定矩阵:一个n阶的实对称矩阵M是正定的的
条件
是当且仅当对于所有的非零实系数向量z,都有z’Mz>0,其中z’表示z的转置; 负定矩阵:一个n阶的实对称矩阵M是正定的的
条件
是当且仅当对于所有的非零实系数向量z,都有z’Mz>0,其中z’表示z的转置; 半正定矩阵:一个n阶的实对称矩阵M是正定的的
条件
是当且仅当对于所有的非零实系数向量z,都有z’Mz≥0,其中z’表示z的转置; 半负定矩阵:一个n阶的实对称矩阵M是正定的的
条件
是当且仅当对于所
条件
判断
时,
判断
的数值为什么要放在左边?
条件
判断
时,
判断
的数据值为什么要放在左边? 清明t
C#
110,502
社区成员
642,567
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章