C#基本运算符

运算符

  • 赋值运算符 “=”,是⼀个运算,将后⾯的结果赋给前⾯的变量或常量

一、算术运算符

  • +、-、*、/、%(取余,5%3=2),都是二元运算符
  • ++运算符和- -运算符都是一元运算符:a++;等价于a=a+1;
 int showYourAge = age++;//结果是18
 //解析:
 //第⼀步:将age的值赋给showYouAge
 //第⼆步:age⾃增
int showYouAge = ++age;//结果为19
 //解析:
 //第⼀步:age⾃增
 //第⼆步:将age的值赋给showYouAge
 //总结:
 //age++;++age;
 //++符号在前就先⾃增,后赋值
 //++符号在后就先赋值,后自增

 //练习题
 int number = 10;
 //问number最后等于⼏
 number = number++ + --number - ++number;
 //9

解析

二、符合运算符

  • a+=b;等价于a=a+b;
  • a-=b;等价于a=a-b;
  • a*=b;等价于a=a*b;
  • a/=b;等价于a=a/b;
  • a%=b;等价于a=a%b;

三、关系运算符及逻辑运算符

  • 关系运算符:>,<,>=,<=,==,!=
  • 逻辑运算符:逻辑运算是bool与bool之间的运算
    &:与运算
    |:或运算
    !:非运算
    &&:短路与运算:普通的&运算,⽆论第⼀个条件是真是假,都会继续判断第⼆条件;短路与运算&&,如果判断第⼀个条件已经是假,则不会继续判断第⼆个条件
    ||:短路或运算:类似
    &&运算、||运算的优缺点:节约了运算量,但如果第二个条件中有运算则不会执行
### C# 中赋值运算符的用法与特性 在 C# 中,赋值运算符 (`=`) 是用于将值分配给变量的基本运算符。此外,C# 还支持复合赋值运算符和空合并赋值运算符等扩展形式,这些运算符可以简化代码并提高可读性。 #### 1. 基本赋值运算符 基本赋值运算符用于将右侧表达式的值赋给左侧变量。语法如下: ```csharp variable = value; ``` 例如: ```csharp int x = 10; // 将整数值 10 赋给变量 x string name = "Alice"; // 将字符串 "Alice" 赋给变量 name ``` #### 2. 复合赋值运算符 复合赋值运算符结合了基本运算符和其他二元运算符(如加法、减法等),从而允许在单个操作中完成计算和赋值。常见的复合赋值运算符包括 `+=`, `-=` 等[^4]。以下是一些示例: - **加法赋值 (`+=`)**: ```csharp int a = 5; a += 3; // 等价于 a = a + 3 Console.WriteLine(a); // 输出: 8 ``` - **减法赋值 (`-=`)**: ```csharp int b = 10; b -= 4; // 等价于 b = b - 4 Console.WriteLine(b); // 输出: 6 ``` - **乘法赋值 (`*=`)** 和 **除法赋值 (`/=`)**: ```csharp int c = 6; c *= 2; // 等价于 c = c * 2 Console.WriteLine(c); // 输出: 12 int d = 9; d /= 3; // 等价于 d = d / 3 Console.WriteLine(d); // 输出: 3 ``` #### 3. 空合并赋值运算符 (`??=`) 空合并赋值运算符 (`??=`) 是一种特殊的赋值运算符,用于为可能为 `null` 的变量提供默认值。如果变量当前为 `null`,则将其赋值为右侧的值;否则保持不变[^2]。示例如下: ```csharp string nickname = null; nickname ??= "CoolCoder"; // nickname 当前为 null,因此赋值为 "CoolCoder" Console.WriteLine(nickname); // 输出: CoolCoder string username = "DeveloperDave"; username ??= "Newbie"; // username 不为 null,因此不改变其值 Console.WriteLine(username); // 输出: DeveloperDave ``` #### 4. 注意事项 - 赋值运算符是右结合的,这意味着在多个连续赋值时,会从右向左进行计算。 - 在使用复合赋值运算符时,确保左侧变量的类型与右侧表达式的结果类型兼容。 - 空合并赋值运算符 (`??=`) 仅适用于可为 `null` 的类型(如引用类型或可空值类型)。 #### 示例代码 以下是一个综合示例,展示了不同类型赋值运算符的用法: ```csharp using System; class Program { static void Main() { int number = 5; number += 3; // number = 8 Console.WriteLine("After +=: " + number); number -= 2; // number = 6 Console.WriteLine("After -=: " + number); string? text = null; text ??= "DefaultText"; // text = "DefaultText" Console.WriteLine("After ??=: " + text); int? nullableInt = null; nullableInt ??= 10; // nullableInt = 10 Console.WriteLine("After ??=: " + nullableInt); } } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值