2021-05-16 C#.NET面试题 &和&&的区别

本文探讨了在编程中&和&&的区别。虽然两者都可用于逻辑与操作,但&&具有短路特性,若第一个表达式为false,则不评估第二个表达式,避免潜在错误。而&是位运算符,适用于按位操作。理解这两者的差异对于编写高效且无错的代码至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

&和&&的区别

相同点
&和&&都可作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,其结果才为true,否则,只要有一方为false,则结果为false。(ps:当要用到逻辑与的时候&是毫无意义,&本身就不是干这个的)

不同点
if(loginUser!=null&&string.IsnullOrEmpty(loginUser.UserName))
&&具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,对于上面的表达式,当loginUser为null时,后面的表达式不会执行,所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。(ps:所以说当要用到逻辑与的时候&是毫无意义的)

& 是用作位运算的。

总结
&是位运算,返回结果是int类型 &&是逻辑运算,返回结果是bool类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值