Latest web development tutorials

C # Операторы

Оператор является символом, чтобы сообщить компилятору для выполнения конкретных математических или логических операций. C # имеет богатый набор встроенных операторов, следующим образом:

  • Арифметические операторы
  • Операторы отношения
  • Логические операторы
  • Битовые операторы
  • Операторы присваивания
  • Разное Операторы

Этот учебник будет объяснить, каждый из арифметических операторов, операторов сравнения, логические операторы, побитовые операторы, оператор присваивания и других операторов.

Арифметические операторы

В приведенной ниже таблице показаны # Поддержка C всех арифметических операторов. Значение 10 предполагается переменная, переменнаяB 20, а затем:

运算符描述实例
+把两个操作数相加 A + B 将得到 30
-从第一个操作数中减去第二个操作数 A - B 将得到 -10
*把两个操作数相乘 A * B 将得到 200
/分子除以分母 B / A 将得到 2
%取模运算符,整除后的余数 B % A 将得到 0
++自增运算符,整数值增加 1 A++ 将得到 11
--自减运算符,整数值减少 1 A-- 将得到 9

примеров

Рассмотрим следующие примеры, чтобы узнать C # все доступные арифметические операторы:

с помощью системы;

пространство имен OperatorsAppl
{
    класс программы
    {
        статической силы основных (String [] агдз)
        {
            INT а = 21;
            INT б = 10;
            INT с;

            с = а + Ь;
            Console.WriteLine ( "1-я линия - с {0}", с);
            с = а - Ь;
            Console.WriteLine ( "2-я линия - с {0}", с);
            C = A * B;
            Console.WriteLine ( "3-я линия - с {0}", с);
            с = а / б;
            Console.WriteLine ( "4-я линия - с {0}", с);
            с = а% B;
            Console.WriteLine ( "Линия 5 - с {0}", с);

            // ++ Первая операция приращения осуществляется присваивания с = ++ а;
            Console.WriteLine ( "6 линия - с {0}", с);

            // В этом случае значение 22
            // --a Первое само вычитание по заданию с = --a;
            Console.WriteLine ( "7 линия - с {0}", с);
            Console.ReadLine ();
        }
    }
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

1-я линия - величина с 31
2-я линия - величина с равна 11
3-я линия - это значение с 210
4-я линия - величина с 2
Строка 5 - значение С равно 1
6 линия - величина с 22
7 линия - величина с 21
  • с = а ++: первое назначение на C, а затем на оператора самостоятельного приращения.
  • с = ++: с первым самостоятельным инкремент оператора, а затем назначается с.
  • с = a--: первое назначение на C, а затем на себя вычитанием.
  • с = --a: сначала само-вычитание, а затем назначается с.
using System;

namespace OperatorsAppl
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 1;
            int b;

            // a++ 先赋值再进行自增运算
            b = a++;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();

            // ++a 先进行自增运算再赋值
            a = 1; // 重新初始化 a
            b = ++a;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();

            // a-- 先赋值再进行自减运算
            a = 1;  // 重新初始化 a
            b= a--;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();

            // --a 先进行自减运算再赋值
            a = 1;  // 重新初始化 a
            b= --a;
            Console.WriteLine("a = {0}", a);
            Console.WriteLine("b = {0}", b);
            Console.ReadLine();
        }
    }
}

Запуск экземпляра »

Вышеприведенная программа, выход:

a = 2
b = 1
a = 2
b = 2
a = 0
b = 1
a = 0
b = 0

Операторы отношения

В приведенной ниже таблице показаны # Поддержка C все операторы отношений. Значение 10 предполагается переменная, переменнаяB 20, а затем:

运算符描述实例
==检查两个操作数的值是否相等,如果相等则条件为真。 (A == B) 不为真。
!=检查两个操作数的值是否相等,如果不相等则条件为真。 (A != B) 为真。
>检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (A > B) 不为真。
<检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) 为真。
>=检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) 不为真。
<=检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (A <= B) 为真。

примеров

Рассмотрим следующие примеры, чтобы узнать C # все доступные операторы сравнения:

с помощью системы;

класс программы
{
  статической силы основных (String [] агдз)
  {
      INT а = 21;
      INT б = 10;
      
      если (а == б)
      {
          Console.WriteLine ( "Линия 1 - а равно б");
      }
      еще
      {
          Console.WriteLine ( "Линия 1 - не равно б");
      }
      если (а <Ь)
      {
          Console.WriteLine ( "Line 2 - меньше, чем б");
      }
      еще
      {
          Console.WriteLine ( "Line 2 - не менее б");
      }
      если (а> Ь)
      {
          Console.WriteLine ( "Линия 3 - больше, чем б");
      }
      еще
      {
          Console.WriteLine ( "Линия 3 - не больше, чем б");
      }
      / * Изменение значения а и Ь * /
      а = 5;
      б = 20;
      если (а <= Ь)
      {
         Console.WriteLine ( "Строка 4 - меньше или равно б");
      }
      если (Ь> = а)
      {
         Console.WriteLine ( "Линия 5 - B больше или равно а");
      }
  }
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

Линия 1 - не равно Ь
Линия 2 - не менее б
Линия 3 - больше, чем б
Строка 4 - меньше или равен Ь
Строка 5 - б больше или равно а

Логические операторы

В приведенной ниже таблице показаны # Поддержка C все логические операторы. Предположим , что значение переменной Логическое верно, переменнаяB является логическое значение ложно, то:

运算符描述实例
&&称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (A && B) 为假。
||称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A || B) 为真。
!称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A && B) 为真。

примеров

Рассмотрим следующие примеры, чтобы узнать C # все доступные логические операторы:

с помощью системы;

пространство имен OperatorsAppl
{
    класс программы
    {
        статической силы основных (String [] агдз)
        {
            BOOL а = верно;
            BOOL б = правда;
           
            если (а && б)
            {
               Console.WriteLine ( "Линия 1 - условие истинно");
            }
            если (а || Ь)
            {
                Console.WriteLine ( "Line 2 - условие истинно");
            }
            / * Изменение значения а и Ь * /
            а = ложь;
            б = правда;
            если (а && б)
            {
                Console.WriteLine ( "Строка 3 - условие истинно");
            }
            еще
            {
                Console.WriteLine ( "Строка 3 - условие не соответствует действительности");
            }
            если (! (а && Ь))
            {
                Console.WriteLine ( "Строка 4 - условие истинно");
            }
            Console.ReadLine ();
        }
    }
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

Линия 1 - условие истинно линия 2 - условие истинно 3-я линия - условие не соответствует действительности линия 4 - условие истинно 

Битовые операторы

Битовые операторы, действующие на бит, и по крупицам операции. &, | И ^ таблица истинности выглядит следующим образом:

pqp & qp | qp ^ q
00000
01011
11110
10011

Предположим, что если А = 60, а B = 13, и теперь, в двоичной форме, являются следующие:

A = 0011 1100

B = 0000 1101

-----------------

& B = 0000 1100

A | B = 0011 1101

А ^ В = 0011 0001

~ A = 1100 0011

В следующей таблице перечислены C # поддержка поразрядных операторов. Предположим , что переменнаяА 60, значение переменной В13, то:

运算符描述实例
&如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 (A & B) 将得到 12,即为 0000 1100
|如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (A | B) 将得到 61,即为 0011 1101
^如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (A ^ B) 将得到 49,即为 0011 0001
~二进制补码运算符是一元运算符,具有"翻转"位效果。(~A ) 将得到 -61,即为 1100 0011,2 的补码形式,带符号的二进制数。
<<二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到 240,即为 1111 0000
>>二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A >> 2 将得到 15,即为 0000 1111

примеров

Рассмотрим следующие примеры, чтобы узнать C #, все доступные биты операторов:

с помощью системы;
пространство имен OperatorsAppl
{
    класс программы
    {
        статической силы основных (String [] агдз)
        {
            INT а = 60; / * 60 = 0011 1100 * /  
            INT б = 13; / * 13 = 0000 1101 * /
            INT с = 0;           

             с = а & Ь; / * 12 = 0000 1100 * / 
             Console.WriteLine ( "1-я линия - с {0}", с);

             C = A | B; / * 61 = 0011 1101 * /
             Console.WriteLine ( "2-я линия - с {0}", с);

             с = а ^ Ь; / * 49 = 0011 0001 * /
             Console.WriteLine ( "3-я линия - с {0}", с);

             с = ~ а; / * - 61 = 1100 0011 * /
             Console.WriteLine ( "4-я линия - с {0}", с);

             с = а << 2; / * 240 = 1111 0000 * /
             Console.WriteLine ( "Линия 5 - с {0}", с);

             с = а >> 2; / * 15 = 0000 1111 * /
             Console.WriteLine ( "6 линия - с {0}", с);
            Console.ReadLine ();
        }
    }
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

1-я линия - величина с 12
2-я линия - величина с 61
3-я линия - величина с 49
4-я линия - значение с является -61
Строка 5 - величина с 240
6 линия - величина с 15

Операторы присваивания

В следующей таблице перечислены C # поддерживают оператор присваивания:

运算符描述实例
=简单的赋值运算符,把右边操作数的值赋给左边操作数 C = A + B 将把 A + B 的值赋给 C
+=加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 C += A 相当于 C = C + A
-=减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 C -= A 相当于 C = C - A
*=乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 C *= A 相当于 C = C * A
/=除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 C /= A 相当于 C = C / A
%=求模且赋值运算符,求两个操作数的模赋值给左边操作数 C %= A 相当于 C = C % A
<<=左移且赋值运算符 C <<= 2 等同于 C = C << 2
>>=右移且赋值运算符 C >>= 2 等同于 C = C >> 2
&=按位与且赋值运算符 C &= 2 等同于 C = C & 2
^=按位异或且赋值运算符 C ^= 2 等同于 C = C ^ 2
|=按位或且赋值运算符 C |= 2 等同于 C = C | 2

примеров

Рассмотрим следующие примеры, чтобы узнать C # во всех доступных операторов присваивания:

с помощью системы;

пространство имен OperatorsAppl
{
    класс программы
    {
        статической силы основных (String [] агдз)
        {
            INT а = 21;
            INT с;

            с = а;
            Console.WriteLine ( "Линия 1 - = с значение = {0}", с);

            с + = а;
            Console.WriteLine ( "Line 2 - + = с значение = {0}", с);

            с - = а;
            Console.WriteLine ( "Строка 3 - - = с значение = {0}", с);

            с * = а;
            Console.WriteLine ( "Строка 4 - * = с значение = {0}", с);

            с / = а;
            Console.WriteLine ( "Линия 5 - / = с значение = {0}", с);

            с = 200;
            C% = а;
            Console.WriteLine ( "Line 6 -% = с значение = {0}", с);

            C << = 2;
            Console.WriteLine ( "Линия 7 - << = с значение = {0}", с);

            C >> = 2;
            Console.WriteLine ( "Линия 8 - >> = C значение = {0}", с);

            с & = 2;
            Console.WriteLine ( "Линия 9 - & = с значение = {0}", с);

            с ^ = 2;
            Console.WriteLine ( "Line 10 - ^ = с значение = {0}", с);

            C | = 2;
            Console.WriteLine ( "Line 11 - | = с значение = {0}", с);
            Console.ReadLine ();
        }
    }
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

Линия 1 - = с = значение 21
Строка 2 - + = значение С = 42
3-я линия - - = значение с = 21
4-я линия - * = значение с = 441
Строка 5 - / = с = значение 21
6 линия -% = значение С = 11
7 Линия - << = значение с = 44
8 Line - значение >> = с = 11
9 Линия - & = значение С = 2
Строка 10 - ^ = с = 0 значение
Строка 11 - | = с 2 = значение

Разное Операторы

В следующей таблице перечислены C # поддерживает некоторые другие важные операторы, включаяSizeOf, TYPEOFи:.

операторы описание примеров SizeOf () Возврат размер типа данных. SizeOf (INT), вернет 4. TypeOf () Возвращает тип класса. TypeOf (StreamReader); & Возвращение переменной адреса. & A; вы получите фактический адрес переменной. * Указатель переменной. * А, будет указывать на переменную. ?: Условное выражение ? Если условие истинно, или X: Y иначе является Определяет, является ли объект определенного типа. Если (Форд автомобиля) // проверить ли объект класса Форд автомобилей. в качестве В ролях, даже если преобразование не может быть он не будет бросать исключение. Объект OBJ = новый StringReader ( "Hello");
StringReader г = OBJ, как StringReader;

примеров

с помощью системы;

пространство имен OperatorsAppl
{
    
   класс программы
   {
      статической силы основных (String [] агдз)
      {
         
         / * Sizeof экземпляр оператора * /
         Console.WriteLine ( "INT размер {0}", SizeOf (INT));
         Console.WriteLine ( "короткий размер {0}", SizeOf (короткое замыкание));
         Console.WriteLine ( "удвоить размер {0}", SizeOf (двойной));
         
         / * Троичный оператор разбивает экземпляр * /
         Int а, б;
         а = 10;
         Ь = (а == 1) 20: 30 ;?
         Console.WriteLine ( "значения Ь {0}", б);

         Ь = (а == 10) 20: 30 ;?
         Console.WriteLine ( "значения Ь {0}", б);
         Console.ReadLine ();
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

Размер Int составляет 4
короткий размер 2
двойной размер 8
б значения 30
б значения 20

В C # оператор старшинства

Приоритет операторов определяет комбинированный термин выражения. Это влияет на вычисление выражения. Некоторые операторы имеют более высокий приоритет по сравнению с другими операторами, такими как сложение и вычитание, умножение и деление оператора, чем оператор с более высоким приоритетом.

Например, х = 7 + 3 * 2, где х присваивается 13 вместо 20, так как оператор * имеет более высокий приоритет, чем +, поэтому сначала вычислить умножение 3 * 2, а затем добавить 7.

В следующей таблице будут перечислены в порядке убывания приоритета операторов для каждого оператора, имеющего приведенные выше операторы с более высоким приоритетом отображаются в таблице со следующими операторами с более низким приоритетом отображаются в таблице. В выражении, с более высоким приоритетом приоритетом операторы рассчитывают.

类别  运算符 结合性 
后缀 () [] -> . ++ - -   从左到右 
一元  + - ! ~ ++ - - (type)* & sizeof  从右到左 
乘除  * / % 从左到右 
加减 + -  从左到右 
移位  << >>  从左到右 
关系 < <= > >=  从左到右 
相等  == !=  从左到右 
位与 AND  从左到右 
位异或 XOR  从左到右 
位或 OR  从左到右 
逻辑与 AND &&  从左到右 
逻辑或 OR  ||  从左到右 
条件 ?:  从右到左 
赋值  = += -= *= /= %=>>= <<= &= ^= |= 从右到左 
逗号  从左到右 

примеров

с помощью системы;

пространство имен OperatorsAppl
{
    
   класс программы
   {
      статической силы основных (String [] агдз)
      {
         INT а = 20;
         INT б = 10;
         INT с = 15;
         INT d = 5;
         INT е;
         е = (а + Ь) * с / д; // (30 * 15) / 5
         Console.WriteLine ( "значение (а + Ь) * с / d {0}", д);

         е = ((а + б) * с) / d; // (30 * 15) / 5
         Console.WriteLine ( "значение ((а + Ь) * с) / d {0}", д);

         е = (а + Ь) * (с / д); // (30) * (15/5)
         Console.WriteLine ( "(а + б) * (C / D) величины {0}", д);

         е = а + (Ь * с) / d; // 20 + (150/5)
         Console.WriteLine ( "значение + (b * с) / d {0}", д);
         Console.ReadLine ();
      }
   }
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

Значение (а + Ь) * C / D 90
Значение ((а + Ь) * с) / d 90
(A + B) * (d с /) значение 90
Значение + (b * с) / d 50