📅  最后修改于: 2023-12-03 15:00:14.130000             🧑  作者: Mango
C# 提供多种类型的运算符用于执行算术、逻辑和其他操作。本文将介绍 C# 中的所有运算符,并提供示例和解释。
+
加法运算符:用于将两个值相加。-
减法运算符:用于从一个值中减去另一个值。*
乘法运算符:用于将两个值相乘。/
除法运算符:用于将一个值除以另一个值。%
取余运算符:用于返回一个值除以另一个值的余数。示例:
int a = 10;
int b = 3;
int sum = a + b; // 13
int difference = a - b; // 7
int product = a * b; // 30
int quotient = a / b; // 3
int remainder = a % b; // 1
赋值运算符用于将一个值赋给一个变量。在 C# 中有多种赋值运算符:
=
简单赋值运算符:用于将一个值赋给一个变量。+=
加法赋值运算符:用于将一个值加到一个变量上。-=
减法赋值运算符:用于从一个变量中减去一个值。*=
乘法赋值运算符:用于将一个变量乘以一个值。/=
除法赋值运算符:用于将一个变量除以一个值。%=
取余赋值运算符:用于将一个变量除以一个值并得到余数。示例:
int a = 10;
int b = 3;
a += b; // a = 13
b -= 2; // b = 1
a *= 2; // a = 26
b /= 2; // b = 0
a %= 7; // a = 5
比较运算符用于比较两个值之间的关系,并返回一个布尔值(True 或 False)。
==
等于运算符:用于比较两个值是否相等。!=
不等于运算符:用于比较两个值是否不相等。>
大于运算符:用于判断一个值是否大于另一个值。<
小于运算符:用于判断一个值是否小于另一个值。>=
大于等于运算符:用于判断一个值是否大于等于另一个值。<=
小于等于运算符:用于判断一个值是否小于等于另一个值。示例:
int a = 10;
int b = 3;
bool isEqual = (a == b); // False
bool isNotEqual = (a != b); // True
bool isGreater = (a > b); // True
bool isLess = (a < b); // False
bool isGreaterOrEqual = (a >= b); // True
bool isLessOrEqual = (a <= b); // False
逻辑运算符用于对两个或多个布尔值执行逻辑运算,并返回一个布尔值。
&&
逻辑与运算符:当两个操作数都为 True 时,返回 True。否则返回 False。||
逻辑或运算符:当两个操作数都为 False 时,返回 False。否则返回 True。!
逻辑非运算符:用于取反一个布尔值。示例:
bool a = true;
bool b = false;
bool andResult = (a && b); // False
bool orResult = (a || b); // True
bool notResult = !a; // False
位运算符用于对二进制值进行操作。在 C# 中有多种位运算符:
&
位与运算符:对两个操作数的每一个位执行逻辑 AND 运算。|
位或运算符:对两个操作数的每一个位执行逻辑 OR 运算。^
位异或运算符:对两个操作数的每一个位执行逻辑 XOR 运算。~
位非运算符:对操作数的每一个位执行逻辑 NOT 运算。<<
左移运算符:将操作数的每一个位向左移动指定的位数。>>
右移运算符:将操作数的每一个位向右移动指定的位数。示例:
int a = 10; // 1010
int b = 6; // 0110
int andResult = a & b; // 0010
int orResult = a | b; // 1110
int xorResult = a ^ b; // 1100
int notResult = ~a; // 0101 (结果为负数,因为 C# 中使用二进制补码表示负数)
int leftShiftResult = a << 1; // 10100
int rightShiftResult = a >> 1; // 0101
条件运算符(也称为三元运算符)是一种简洁的表示方式,用于根据一个条件在两个值中选择一个。
? :
条件运算符:形式为 condition ? first_expression : second_expression,当条件为 True 时,返回第一个表达式的值。否则返回第二个表达式的值。示例:
int a = 10;
int b = 3;
int max = (a > b) ? a : b; // 10
类型运算符用于确定一个对象的类型。
typeof
类型运算符:用于获取指定类型的 System.Type 对象。示例:
class MyClass { }
MyClass obj = new MyClass();
Type type = typeof(MyClass);
Console.WriteLine(type); // 输出:MyClass
C# 中还有一些其他的运算符,包括:
is
运算符:用于确定一个对象是否与指定类型兼容,并返回一个布尔值。as
运算符:用于将一个对象强制转换为指定类型,或者将一个对象转换为 null。??
运算符:用于检查一个值是否为 null,并在为 null 时返回一个默认值。示例:
class MyBaseClass { }
class MyDerivedClass : MyBaseClass { }
MyBaseClass obj1 = new MyBaseClass();
MyDerivedClass obj2 = new MyDerivedClass();
bool isDerivedClass = (obj2 is MyBaseClass); // True
MyBaseClass castedObject = (obj2 as MyBaseClass); // 可以正常强制转换
MyDerivedClass castedObject2 = (obj1 as MyDerivedClass); // 转换后为 null
int? nullableValue = null;
int result = nullableValue ?? 0; // 如果 nullableValue 为 null,返回 0