ibcadmin 发表于 2016-5-9 17:05:19

c#中&&和&以及||和|的区别【转】

|:二元 | 运算符是为整型和 bool 类型预定义的。对于整型,| 计算操作数的按位“或”结果。对于 bool 操作数,| 计算操作数的逻辑“或”结果;也就是说,当且仅当两个操作数均为 false 时,结果才为 false。

&:& 运算符既可作为一元运算符也可作为二元运算符。
一元 & 运算符返回操作数的地址(要求 unsafe 上下文)。

为整型和 bool 类型预定义了二进制 & 运算符。对于整型,& 计算操作数的逻辑按位“与”。对于 bool 操作数,& 计算操作数的逻辑“与”;也就是说,当且仅当两个操作数均为 true 时,结果才为 true。

|位或运算的时候,他会将所有运算条件都算出结果,再判断是否为真.
|| 逻辑或运算的时候,从前往后运算,若有一个成立,则不再继续运算下面的条件.直接为真.

& 与 && 也是同理.
用 & 和 && 打个比方.


txtName 是个textbox.


if(txtName != null && txtName.Text != "")
{}

if(txtName != null & txtName.Text != "")
{}


会出现不同的效果.


当txtName = null的时候.
第2条语句会报错.
因为第2条会一起执行 txtName != null 和 txtName.Text != ""
所以第2个条件报错.
而第1句执行txtName != null的时候 得到 false
则不会继续执行下去了.

页: [1]
查看完整版本: c#中&&和&以及||和|的区别【转】