Скачиваний:
66
Добавлен:
24.03.2015
Размер:
181.25 Кб
Скачать

Глава 3. Операции и целочисленные выражения

3.1. Операции языка c#

Набор операций языка C# весьма велик и рассматривать возможности каждой из них мы будем постепенно по мере необходимости. Однако, предварительно приведем список операций, разместив их в порядке уменьшения их приоритетов.

Таблица 3.1. Операции, ассоциативные слева – направо.

Базовые (первичные) операции

.

выбор члена (класса или объекта)

()

вызов метода или делегата

[ ]

доступ по индексу (индексирование)

++

постфиксный инкремент

--

постфиксный декремент

new

создание объекта (создание экземпляра)

typeof

идентификация типа

sizeof

определение размера операнда (только в опасном коде)

checked

контроль за вычислением выражения

unchecked

отмена контроля за вычислением выражения

->

доступ к члену (объекта) по указателю (только в опасном

коде)

Унарные операции

+

унарный плюс (задание знака)

-

унарный минус (задание знака)

+ +

префиксный инкремент

- -

префиксный инкремент

~

поразрядное отрицание

!

логическое отрицание

(тип)

приведение к заданному типу

&

получение адреса (только в опасном коде)

*

разыменование указателя (только в опасном коде)

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

*

умножение

/

деление

%

получение остатка при целочисленном делении

+

сложение

-

вычитание

Операции поразрядных сдвигов

>>

поразрядный сдвиг вправо

<<

поразрядный сдвиг влево

Операции отношений (сравнений)

<

меньше

>

больше

<=

меньше или равно

>=

больше или равно

is as

сравнение типов (возвращает логическое значение) проверка типов (возвращает тип или null)

==

!=

??

сравнение на равенство

сравнение на неравенство сравнение null (поглощение null)

Поразрядные операции

&

^

|

побитовое (поразрядное) И

побитовое (поразрядное) взаимоисключающее ИЛИ побитовое (поразрядное) ИЛИ

Логические бинарные операции

&

|

^

&&

II

конъюнкция (логическое И) дизъюнкция (логическое ИЛИ) взаимоисключающая дизъюнкция условная конъюнкция

условная дизъюнкция

Тернарная операция

?:

условная операция

Таблица 3.2 Операции, ассоциативные справа – налево.

присваивание

+=

сложение с присваиванием

-=

вычитание с присваиванием

*=

умножение с присваиванием

/=

деление с присваиванием

%=

получение остатка от деления с присваиванием

&=

поразрядное И с присваиванием

^=

поразрядное исключающее ИЛИ с присваиванием

|=

поразрядное ИЛИ с присваиванием

>>=

поразрядный сдвиг вправо с присваиванием

<<=

поразрядный сдвиг влево с присваиванием

В таблице 3.1. операции объединены в группы. В каждую группу помещены операции одного ранга. Операции из таблицы 1 выполняются слева направо, но это справедливо только для операций одного ранга. Например, x*y/z будет вычисляться в соответствии с выражением (x*y)/z.

Операции группы, размещенной выше, имеют более высокий ранг, нежели операторы групп, размещенных ниже. Например, 2+6/2 равно 5, так как операция / имеет более высокий ранг, недели бинарная операция +. Начинающие программисты, забывая о приоритетах операций, иногда ошибаются, приводя для математического соотношения a/(b*c) такое выражение: а/b*с. Его следует записать, используя скобки: а/(b*с), или без скобок: а/b/с.

Соседние файлы в папке Lekc_C#