C#算术运算符代理是一种特殊的运算符,它可以用来实现复杂的数学表达式。它可以用于替代常规的加减乘除运算,使得表达式更加清晰易读。C#中的运算符代理包括:+、-、*、/、%、&、|和^。
+运算符代理是C#中最常用的一个,它可以用来表达加法运算。例如:int a = 10 + 20; // a 的值为30
-运算符代理是C#中最常用的一个,它可以用来表达减法运算。例如:int b = 10 - 20; // b 的值为-10
* 运算符代理是C#中最常用的一个,它可以用来表达乘法运算。例如:int c = 10 * 20; // c 的值为200
/ 运算符代理是C#中最常用的一个,它可以用来表达除法运算。例如:int d = 10 / 20; // d 的值为0.5
% 运算
为所有数字类型定义算术运算符(+, - ,*,/,%)。
运算符 | 含义 |
---|---|
+ | 加 |
- | 减 |
* | 剩 |
/ | 除 |
% | 求余 |
自增和自减运算符(++, --)将数值类型递增和递减1。
操作符可以跟随也可以在变量之前,取决于我们希望其值在增加/减少之前还是之后。
例如:
int x = 0, y = 0;
Console.WriteLine (x++); // Outputs 0; x is now 1
Console.WriteLine (++y); // Outputs 1; y is now 1
整数类型的除法运算总是截断余数。
除以值为零的变量会生成运行时错误。
除以文字或常量0会产生编译时错误。
在运行时,对整数类型的算术运算可能溢出。
例如,递减最小可能的int
值导致最大可能的int
值:
int a = int.MinValue;
a--;
Console.WriteLine (a == int.MaxValue); // True
checked
运算符告诉运行时生成一个OverflowException
,而不是在溢出的情况下无声地溢出。
checked
运算符在整数类型之间使用++, - ,+, - ,*,/和显式转换运算符影响表达式。
checked
运算符对double和float类型没有影响。
checked
运算符对始终检查的十进制类型没有影响。
checked
可以在表达式或语句块周围使用。
例如:
int a = 1000000;
int b = 1000000;
int c = checked (a * b); // Checks just the expression.
// Checks all expressions in statement block.
checked{
...
c = a * b;
...
}
我们可以通过使用/checked+
命令行开关编译来检查程序的所有算术溢出。
要禁用特定表达式或语句的溢出检查,请使用unchecked
的运算符。
例如,以下代码不会抛出异常 - 即使使用/ checked +
:
int x = int.MaxValue;
int y = unchecked (x + 1);
unchecked { int z = x + 1; }
不管 /checked
编译器切换,在编译时评估的表达式总是被overflow-checked - 除非我们应用unchecked
运算符:
int x = int.MaxValue + 1; // Compile-time error
int y = unchecked (int.MaxValue + 1); // No errors
C#支持以下位运算符:
运算符 | 含义 | 示例表达式 | 结果 |
---|---|---|---|
~ | Complement | ~0xfU | 0xfffffff0U |
& | And | 0xf0& 0x33 | 0x30 |
| | Or | 0xf0 | 0x33 | 0xf3 |
^ | Exclusive Or | 0xff00 ^ 0x0ff0 | 0xf0f0 |
<< | Shift left | 0x20<< 2 | 0x80 |
>> | Shift right | 0x20>> 1 | 0x10 |
C#数组数组表示特定类型的固定数量的变量。 在元素类型后面创建一个带方括号的数组。 例如:char[] letterArray = new char[5]; ...
C#参数方法可以具有参数序列。参数定义必须为该方法提供的参数集。在以下示例中,myMethod方法具有名为p的单个参数,类型为int...