C#赋值运算符的用法(附带实例)
赋值运算符主要用来为变量等赋值,它是双目运算符。C# 中的赋值运算符分为简单赋值运算符和复合赋值运算符,下面分别进行讲解。
C# 提供了很多复合赋值运算符,其说明及运算规则如下表所示:
但是如果使用“+=”实现递增计算,就不会出现这个问题,代码如下:
在 C# 中可以把赋值运算符连在一起使用。如:
C#简单赋值运算符
简单赋值运算符以符号“=”表示,其功能是将右操作数所含的值赋给左操作数。例如:int a = 100; // 该表达式是将100赋值给变量a
C#复合赋值运算符
在程序中对某个对象进行某种操作后,如果再将操作结果重新赋值给该对象,则可以通过下面的代码实现:int a = 3; int temp = 0; temp = a + 2; a = temp;上面的代码看起来很烦琐,在 C# 中,上面的代码等价于:
int a = 3; a += 2;上面代码中的 += 就是一种复合赋值运算符,复合赋值运算符又称为带运算的赋值运算符,它其实是将赋值运算符与其他运算符合并成一个运算符来使用,从而同时实现两种运算符的效果。
C# 提供了很多复合赋值运算符,其说明及运算规则如下表所示:
名称 | 运算符 | 运算规则 | 意义 |
---|---|---|---|
加赋值 | += | x+=y | x=x+y |
减赋值 | -= | x-=y | x=x-y |
除赋值 | /= | x/=y | x=x/y |
乘赋值 | *= | x*=y | x=x*y |
模赋值 | %= | x%=y | x=x%y |
位与赋值 | &= | x&=y | x=x&y |
位或赋值 | |= | x|=y | x=x|y |
右移赋值 | >>= | x>>=y | x=x>>y |
左移赋值 | <<= | x<<=y |
x=x<<y |
异或赋值 | ^= | x^=y | x=x^y |
C#复合赋值运算符的优势及劣势
使用复合赋值运算符时,虽然“a+=1”与“a=a+1”两者的计算结果是相同的,但是在不同的场景下,两种使用方法都有各自的优势和劣势,下面分别介绍。1) 低精度类型自增
在 C# 中,整数的默认类型是 int 型,所以下面的代码会报错:byte a=1; // 创建byte类型变量a a=a+1; // 错误提示:无法将int型转换成byte型上面的代码中,在没有进行强制类型转换的条件下,a+1 的结果是一个 int 值,无法直接赋给一个 byte 变量。
但是如果使用“+=”实现递增计算,就不会出现这个问题,代码如下:
byte a=1; // 创建byte类型变量a a+=1; // 正确:a的值加1
2) 不规则的多值运算
复合赋值运算符的功能虽然强大,但是有些时候是不推荐使用的,例如下面的情况:a = (2 + 3 - 4) * 92 / 6;如果将上面这行代码改成复合赋值运算符实现,就会显得非常烦琐,代码如下:
a += 2; a += 3; a -= 4; a *= 92; a /= 6;
在 C# 中可以把赋值运算符连在一起使用。如:
x = y = z = 5;在这个语句中,变量 x、y、z 都得到同样的值 5,但在程序开发中不建议使用这种赋值语法。