📜  C#-运算符(1)

📅  最后修改于: 2023-12-03 15:00:14.130000             🧑  作者: Mango

C# 运算符

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