社区
C#
帖子详情
关于在判断条件中定值在前在后的问题
yingzhilian2008
2009-04-28 09:58:34
判断条件中
例如if(对象!=null) 和if(null!=对象)
if(txtBox.Text.equals(""))和if("".equals(txtBox.Text))这些到底有什么区别,
那种写法比较好,
为什么要这样写,
能避免什么问题!
望达人们帮忙!
...全文
236
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)
CMS定值模型之设置编辑定值组
本文围绕电力自动化系统中CMS定值组的编辑展开。介绍了编辑定值组需按顺序执行对应服务,详细阐述了选择、读取、设置、确认编辑定值组值的流程及
判断
条件
,还提及了编辑时的注意事项,如权限管理、数据一致性等,以保障系统正确运行。
const在
前
在后
问题
,strcpy
问题
,
条件
,异或互换
文章讲述了C++中不同类型的指针,如普通指针、常量指针和指针常量的区别,以及const修饰符的作用。重点讲解了strcpy函数的使用注意事项和字符数组赋值的方法。
Mybatis中关于
判断
字符串参数与固定值比较始终不成立分析
这篇博客分享了在使用Mybatis时遇到的一个常见
问题
,即在对String类型的参数进行固定值
判断
时出现错误。作者指出,由于OGNL表达式解析的
问题
,'1'会被解析成字符,与字符串不匹配导致
条件
不成立。解决方案包括将单引号改为双引号或将'1'转为字符串。通过这两个方法可以避免此类
问题
,确保代码正常执行。
中对曲线进行斜率提取_圆锥曲线
中定值
问题
的常见解法!!!
本文详细介绍了圆锥曲线中涉及定值
问题
的解题方法,包括单条直线与曲线相交的定值
问题
、相交弦的定值
问题
以及其他类型的定值
问题
。通过具体的例题和变式,阐述了解题步骤,如设直线方程、应用韦达定理和利用等量关系求解定值。文章强调了提取题目中等量关系、设未知点坐标以及应用直线与曲线联立方程的重要性,并提供了多种求解定值
问题
的常见情况和技巧。
解决MySQL中整型字段
条件
判断
禁用不生效的
问题
本文探讨了在MyBatis的XML映射文件中,对整型字段进行
条件
判断
时出现的类型不匹配
问题
。分析了MySQL中整数与字符串比较时的转换情况,给出了检查是否为特定值、排除特定值等解决方案,并提供示例代码,强调要注意数据类型匹配。
C#
111,129
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章