C#中的运算符教程

281 阅读8分钟

C#中的操作者

操作符是指示编译器执行特定数学或逻辑计算的符号。这就是构成任何编程语言的基础。因此,如果没有运算符的使用,C#语言的实用性就会有所欠缺。

算术运算符

算术运算符是binaryunary operators ,用于解决操作数的数学运算。二进制运算符对两个操作数进行操作,而单进制运算符只对一个操作数进行操作。

以下是属于这一类别的二进制运算符。

  1. 子结构- 运算符对两个操作数进行减法运算。考虑一下x-y的情况。
  2. 加法+ 运算符取两个操作数并将它们相加。考虑表达式x+y。
  3. 除法/ 操作符将第一个操作数除以第二个操作数。请考虑x/y的例子。
  4. 乘法:当两个操作数相乘时,使用* 操作符。考虑到x*y。
  5. 模数:当第一个操作数除以第二个操作数时,% 操作符返回余数。例如,x % y。

以下是属于这一类的单数运算符。

  1. 增量++ 运算符将一个整数的值提高了1。请考虑表达式K++。
  2. 递减-- 运算符将一个整数的值降低1。请考虑表达式K-。

下面的程序显示了算术运算符的使用。

using System;
namespace Arithmetic
{
    class example
    {
        static void Main(string[] args)
        {

           int result, unary;
            int a = 21, b = 6;

            result = (a + b);
            Console.WriteLine("Addition Operator: " + result);

            result = (a - b);
            Console.WriteLine("Subtraction Operator: " + result);

            result = (a * b);
            Console.WriteLine("Multiplication Operator: " + result);

            result = (a / b);
            Console.WriteLine("Division Operator: " + result);

            result = (a % b);
            Console.WriteLine("Module Operator: " + result);

            unary= a++;
            Console.WriteLine("A is {0} and unary is {1}", a, unary);
            
            unary= a--;
            Console.WriteLine("A is {0} and  unary is {1}", a, unary);
        }
    }
}

所有算术运算程序的输出是。

Addition Operator: 27
Subtraction Operator: 15
Multiplication Operator: 126
Division Operator: 3
Module Operator: 3
A is 22 and unary is 21
A is 21 and  unary is 22

赋值运算符

通过赋值运算符,一个新的值被分配到变量、属性、事件或索引器中,以C#编程语言。

位逻辑运算、对积分操作数的运算和对布尔操作数的运算都可以用赋值运算符完成。

有11种类型的赋值运算符,即。

  1. 添加赋值(+=):+= 操作符结合在这个操作符中。该运算符在将当前值添加到右边变量后,将结果分配到左边变量。
  2. 多重赋值(*=):*= 运算符结合在这个运算符中。在左边的变量的当前值与右边的值相乘后,该运算符将结果发送到左边的变量中。
  3. 除法赋值(/=):/= 操作符结合在这个操作符中。这个运算符将左边变量的当前值除以右边变量的值,然后将结果分配给左边的变量。
  4. 简单赋值(=):该操作符将右边的变量值分配给左边的变量。
  5. 减法赋值(-=):该操作符是操作符-= 的混合体。这个运算符从右侧变量的值中减去左侧变量的当前值,然后将结果分配给左侧变量。
  6. 模数赋值(%=):该运算符由运算符%= 组成。最右边的变量的当前值与该运算符相乘,然后将结果分配给最左边的变量。
  7. 左移赋值(<<=):该运算符是运算符<<= 的混合体。当前的变量值首先被该运算符移到左边,然后将结果分配给该变量。
  8. 右移赋值(>>=):该运算符是运算符>>= 的混合体。在将当前变量的值右移后,该运算符将把结果转移到变量的左边。
  9. Bitwise AND 赋值(&=):这个运算符是由运算符&= 混合而成。该运算符在与左边变量的当前值逐位相加后,将结果传送到左边的变量中。
  10. Bitwise inclusive OR(|=):该运算符是运算符|= 的混合体。最初,左边的变量的当前值被 "Bitwise with OR",然后将其分配到右边的变量。
  11. 位数排他性OR(^=):该运算符是运算符^= 的混合体。该运算符的结果将把左边的变量与右边的变量进行 "比特排他性OR "后的值发送。

下面的程序显示了所有正在使用的赋值运算符。

using System;
namespace Assignment_operator
{
    class example
    {
        static void Main(string[] args)
        {
            int x = 35;

            x += 8;
            Console.WriteLine("Add Assignment Operator: " + x);
            x -= 7;
            Console.WriteLine("Subtract Assignment Operator: " + x);
            x *= 5;
            Console.WriteLine("Multiply Assignment Operator: " + x);
            x /= 3;
            Console.WriteLine("Division Assignment Operator: " + x);
            x = 2;
            x %= 4;
            Console.WriteLine("Modulous Assignment Operator: " + x);
            x = 4;
            x <<= 6;
            Console.WriteLine("Left Shift Assignment Operator: " + x);
            x = 60;
            x >>= 5;
            Console.WriteLine("Right Shift Assignment Operator: " + x);
            x = 10;
            x &= 6;
            Console.WriteLine("Bitwise AND Assignment Operator: " + x);
            x = 10;
            x ^= 3;
            Console.WriteLine("Bitwise Exclusive OR Assignment Operator: " + x);
            x |= 7;
            Console.WriteLine("Bitwise Inclusive OR Assignment Operator: " + x);

        }
    }
}

上述程序的输出结果是。

Add Assignment Operator: 43
Subtract Assignment Operator: 36
Multiply Assignment Operator: 180
Division Assignment Operator: 60
Modulous Assignment Operator: 2
Left Shift Assignment Operator: 256
Right Shift Assignment Operator: 1
Bitwise AND Assignment Operator: 2
Bitwise Exclusive OR Assignment Operator: 9
Bitwise Inclusive OR Assignment Operator: 15

位操作符

在C#中,有六个位运算符在位级上起作用,或执行逐位操作。

位操作符的内容如下。

  1. 位数和(&):接受两个操作数,并对两个整数的每一个位进行AND操作。只有当两个位都是1时,AND才会有结果。(bitwise OR)取两个操作数,对两个值的每个位执行OR。如果两个比特中的任何一个是1,OR返回1。
  2. Bitwise OR(|):取两个操作数,对两个整数的每一位进行OR。如果两个比特中的任何一个为1,则OR返回1。
  3. Bitwise XOR(^):取两个操作数,对两个整数的每一个位进行XOR。如果这两个位是不同的,XOR的结果是1。
  4. 左移(<<):取两个整数的二进制表示,并将第一个操作数的各个位向左移动。移位的数量由第二个操作数决定。
  5. 右移 (>>):取两个整数的二进制表示,将第一个操作数的位向右移动。第二个操作数决定移位的数量。

下面的程序显示了所有Bitwise运算符的使用情况。

using System;
namespace Bitwise_operators
{

    class example
    {
        static void Main(string[] args)
        {
            int a = 3, b = 9, outcome;
            outcome = a & b;
            Console.WriteLine("Bitwise AND: " + outcome);
            outcome = a | b;
            Console.WriteLine("Bitwise OR: " + outcome);
            outcome = a ^ b;
            Console.WriteLine("Bitwise XOR: " + outcome);
            outcome = ~a;
            Console.WriteLine("Bitwise Complement: " + outcome);
            outcome = a << 3;
            Console.WriteLine("Bitwise Left Shift: " + outcome);
            outcome = a >> 3;
            Console.WriteLine("Bitwise Right Shift: " + outcome);

        }
    }
}

这就是输出。

Bitwise AND: 1
Bitwise OR: 11
Bitwise XOR: 10
Bitwise Complement: -4
Bitwise Left Shift: 24
Bitwise Right Shift: 0

关系运算符

当两个值进行比较时,需要使用关系运算符。

以下是关系运算符。

  1. 等于(==):如果是,就会返回真。否则将返回假。例如,5==5就会返回真。
  2. 不等于(!=) :该运算符确定两个操作数是否相等。如果是错的,则输出为真。否则就返回假。它是== 操作符的精确布尔补码。例如,5!=5将返回false。
  3. 大于(>):这个运算符检测第一个操作数是否比第二个操作数大。如果是这种情况,则返回true。
  4. Less Than(<):该操作符确定第一个操作数是否比第二个操作数小。如果是这种情况,它返回真。否则,返回false。例如,65<5,将返回false。
  5. 大于等于(>=):该运算符检测第一个操作数是否超过或等于第二个操作数 如果是,则输出为真。否则,将返回false。例如,5>=5将产生真。
  6. Less Than Equal To(<=) :该操作符检测第一操作数是否等于或低于第二操作数。如果是,则输出为真。否则,就会返回false。例如,5=5也会产生真。

下面的程序显示了所有正在使用的关系运算符。

using System;
namespace Relational_operators
{

    class examples
    {
        static void Main(string[] args)
        {
            bool outcome;
            int a = 6, b = 12;
            outcome = (a == b);
            Console.WriteLine("Equal to Operator: " + outcome);
            outcome = (a > b);
            Console.WriteLine("Greater than Operator: " + outcome);
            outcome = (a < b);
            Console.WriteLine("Less than Operator: " + outcome);
            outcome = (a >= b);
            Console.WriteLine("Greater than or Equal to: " + outcome);
            outcome = (a <= b);
            Console.WriteLine("Lesser than or Equal to: " + outcome);
            outcome = (a != b);
            Console.WriteLine("Not Equal to Operator: " + outcome);
        }
    }
}

这就是输出结果。

Equal to Operator: False
Greater than Operator: False
Less than Operator: True
Greater than or Equal to: False
Lesser than or Equal to: True
Not Equal to Operator: True

条件性运算符

三元运算符是if-else表达式的一种简化形式。三元运算符的术语来自于它包含三个操作数的事实。取决于布尔衔接的值,它将返回两个结果之一。

条件运算符的代码。

 condition ? first_expression : second_expression; 

语法解释。条件--必须对它进行测试,看它是真的还是假的。

第一个表达式-- 如果布尔表达式的结果为真,则对其进行评估并获得结果。

第二个表达式--如果布尔表达式的结果是假的,则对它进行评估并确定结果。

下面的程序显示了所有正在使用的条件运算符。

using System;
namespace Conditional_operators
{

    class example
    {
        static void Main(string[] args)
        {
            int a=6, b=7, outcome;
            outcome = a>b ? a:b;
            Console.WriteLine("final outcome: " + outcome);
            outcome = a < b ? a : b;
            Console.WriteLine("final outcome: " + outcome);
        }
    }
}

这就是输出结果。

final outcome: 7
final outcome: 6

逻辑运算符

它们被用来整合两个或更多的条件/约束,或补充对原始条件的评估。下面是它们的列表。

  1. 逻辑OR(||):当一个(或两个)有关的要求被满足时,'||'运算符返回真。否则,返回false。例如,x || y返回真(即非零)。当然,当x和y都为真时,它返回真。
  2. 逻辑NOT(!):如果不满足有关条件,'!'操作符返回真。否则,返回false。
  3. 逻辑和(&&):当两个条件都满足时,'&&'操作符返回真。否则,返回false。例如,当a和b都为真时,a&&b产生真(即非零)。

下面的程序显示了所有正在使用的逻辑运算符。


using System;
namespace Logical_operators
{

    class example
    {
        static void Main(string[] args)
        {
            bool n = true, m = false, outcome;
            outcome = n && m;
            Console.WriteLine("AND Operator: " + outcome);
            outcome = n || m;
            Console.WriteLine("OR Operator: " + outcome);
            outcome = !n;
            Console.WriteLine("NOT Operator: " + outcome);

        }
    }
}

这就是输出结果。

AND Operator: False
OR Operator: True
NOT Operator: False

杂项运算符

  • sizeof():在这个运算符中,返回一个数据类型的大小。
  • Typeof():在这个操作符中,返回一个类的类型。
  • &: 在这个运算符中,返回一个变量的地址。
  • Is:确定一个项目是否属于一个特定的类型。
  • :确定一个项目是否属于特定的类型。如果转换失败,它不会被作为一个异常提出。

下面的程序显示了Bitwise运算符的使用情况。

using System;

namespace OperatorsAppl
{

    class Program
    {

        static void Main(string[] args)
        { 
            Console.WriteLine("The size of int is {0}", sizeof(int));
            Console.WriteLine("The size of short is {0}", sizeof(short));
            Console.WriteLine("The size of double is {0}", sizeof(double));
            int a, b;
            a = 20;
            b = (a == 1) ? 10 : 20;
            Console.WriteLine("Value of b is {0}", b);

            b = (a == 20) ? 10 : 20;
            Console.WriteLine("Value of b is {0}", b);
        }
    }
}

这就是输出结果。

The size of int is 4
The size of short is 2
The size of double is 8
Value of b is 20
Value of b is 10

总结

在本教程中,我们已经了解了C#编程语言中多种类型的运算符。

我们还学习了如何使用这些操作符以及它们的符号。操作符通常用于在决策语句中声明条件,采用循环,并进行代数运算。