逻辑(布尔型)运算符用于对boolean型的结果的表达式进行运算,运算的结果都是boolean型。其运算结果如下所示:
运算符 运算 例子 结果
& AND(与) false&true false
| OR(或) false|true true
^ XOR(异或) false^true true
! NOT(非) !false true
&& AND(短路) false&&true false
|| OR(短路) false||true true
下面对一些比较容易出现问题进行简单解释:
1、“^“ 将计算操作数的逻辑“异或”;也就是说,当且仅当只有一个操作数为 true时,结果才为true。
2、“&”与”&&“的区别在于,如果使用前者连接,那么无论任何情况下,“&”两边的表达式都会参与计算。如果使用后者连接,当“&&”的左边为false,则将不会计算其右边的表达式。
3、“|”与“||”的区别在于,“|”表示两边任何一个布尔表达式为真,该组合就会返回true值;而对于“||”,跟第二差不多,若左边是true则返回true,若左边是falsh,则看右边,若右边为true则为true否则为falsh。
例
复制代码 代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int x = 0;
string name = "搜索吧";
//&运算,两个中任何一个为假时则为假
Response.Write("x != 0 & name = /"搜索吧/"的运算结果是:"+ (x != 0 & name == "搜索吧"));
Response.Write("<br>");
//|运算,当两个中任何一个为真时,运算结果为真,否则为加
Response.Write("x != 0 | name = /"搜索吧/"的运算结果是:" + (x != 0 | name == "搜索吧"));
Response.Write("<br>");
//^运算,当且仅当有一个是True时,为真,否则为假
Response.Write("x != 0 ^ name = /"搜索吧/"的运算结果是:" + (x != 0 ^ name == "搜索吧"));
Response.Write("<br>");
Response.Write("x == 0 ^ name = /"搜索吧/"的运算结果是:" + (x == 0 ^ name == "搜索吧"));
Response.Write("<br>");
//!运算,若真则假,若假则真
Response.Write("x != 0 的运算结果是:" + !(x != 0));
Response.Write("<br>");
//&&短路运算,若左边为假则退出,若左边为真,则看右边
Response.Write("x != 0 && name = /"搜索吧/"的运算结果是:" + (x != 0 && name == "搜索吧"));
Response.Write("<br>");
//||短路运算,若左边为真,则为真退出;若左边为假,则看右边,右边为真,则为真,否则为假
Response.Write("x != 0 || name = /"搜索吧/"的运算结果是:" + (x != 0 || name == "搜索吧"));
}
}
运算符
C# 提供大量运算符,这些运算符是指定在表达式中执行哪些操作的符号。通常允许对枚举进行整型运算,例如 ==、!=、<、>、<=、>=、binary +、binary -、^、&、|、~、++、-- 和 sizeof()。此外,很多运算符可被用户重载,由此在应用到用户定义的类型时更改这些运算符的含义。
运算符类别 运算符
基本 x.y
f(x)
a[x]
x++
x--
new
typeof
checked
unchecked
->
一元 +
-
!
~
++x
--x
(T)x
True
False
&
sizeof
乘法 *
/
%
加法 +
-
变换 <<
关系和类型检测 <
>
<=
>=
is
as
相等 ==
!=
逻辑“与” &
逻辑 XOR ^
逻辑“或” |
条件 AND &&
条件 OR ||
条件运算 ?:
赋值 =
+=
-=
*=
/=
%=
&=
|=
^=
<<=
=
??
运算符优先级
前++ 前-- +(正号) -(负号)! ~
* / %
+ -
<<
< > <= >=
== !=
&
^
&&
赋值运算
后++ 后--
可重载运算符
C# 允许用户定义的类型通过使用 operator 关键字定义静态成员函数来重载运算符。但不是所有的运算符都可被重载,下表列出了不能被重载的运算符:
运算符 可重载性
+、-、!、~、++、--、true 和 false 可以重载这些一元运算符。
+, -, *, /, %, &, |, ^, <<, 可以重载这些二进制运算符。
==, !=, <, >, <=, >= 比较运算符可以重载(但请参见本表后面的说明)。
&&, || 条件逻辑运算符不能重载,但可使用能够重载的 & 和 | 进行计算。
[] 不能重载数组索引运算符,但可定义索引器。
() 不能重载转换运算符,但可定义新的转换运算符(请参见 explicit 和 implicit)。
+=, -=, *=, /=, %=, &=, |=, ^=, <<=, = 赋值运算符不能重载,但 += 可使用 + 计算,等等。
=、.、?:、->、new、is、sizeof 和 typeof 不能重载这些运算符。
语法
复制代码 代码如下:
public static Complex operator +(Complex c1, Complex c2)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]