Например,

a + 2 — это выражение,

в котором + является знаком операции, аи 2 — операндами. Пробелы внутри знака операции, состоящей из нескольких символов, не допускаются. Операции C# приведены в таблице 3.1.

Таблица 3.1. Операции C#

Категория Знак операции Название
Первичные x() Вызов метода или делегата
  x[] Доступ к элементу
  x++ Постфиксный инкремент
  x-- Постфиксный декремент
  new Выделение памяти
  typeof Получение типа
  checked Проверяемый код
  unchecked Непроверяемый код
Унарные + Унарный плюс
  - Унарный минус (арифметическое отрицание)
  ! Логическое отрицание
    Поразрядное отрицание
  ++x Префиксный инкремент
  --x Префиксный декремент
  (тип)x Преобразование типа
Мультипликативные (типа умножения) * Умножение
  / Деление
  % Остаток от деления
Аддитивные (типа сложения) + Сложение
  - Вычитание
Сдвига << Сдвиг влево
  >> Сдвиг вправо
Отношения и проверки типа < Меньше
  > Больше
  <= Меньше или равно
  >= Больше или равно
  is Проверка принадлежности типу
  as Приведение типа
Проверки на равенство == Равно
  != Не равно
Поразрядные логические & Поразрядная конъюнкция (И)
  ˄ Поразрядное исключающее ИЛИ
  | Поразрядная дизъюнкция (ИЛИ)
Условные логические && Логическое И
  || Логическое ИЛИ
Условная ?: Условная операция
Присваивания = Присваивание
  *= Умножение с присваиванием
  /= Деление с присваиванием
  %= Остаток отделения с присваиванием
  += Сложение с присваиванием
  -= Вычитание с присваиванием
  <<= Сдвиг влево с присваиванием
  >>= Сдвиг вправо с присваиванием
  &= Поразрядное И с присваиванием
    Поразрядное исключающее ИЛИ с присваиванием
  |= Поразрядное ИЛИ с присваиванием

 

Операции в выражении выполняются в определенном порядке в соответствии с приоритетами, как и в математике. В таблице 3.1 операции расположены по убыванию приоритетов, уровни приоритетов разделены в таблице горизонтальными линиями.

Результат вычисления выражения характеризуется значением и типом. Например, пусть a и b — переменные целого типа и описаны так:

int a = 2, b = 5;

 

Тогда выражение a + b имеет значение 7 и тип int, а выражение a = b имеет значение, равное помещенному в переменную a (в данном случае — 5) и тип, совпадающий с типом этой переменной.

 

Если в одном выражении соседствует несколько операций одинакового приоритета, операции присваивания и условная операция выполняются справа налево, остальные — слева направо. Для изменения порядка выполнения операций используются круглые скобки, уровень их вложенности практически не ограничен.

 

Например, a + b + c означает (a + b) + c, а a = b = c означает a = (b = c).

Преобразования встроенных арифметических типов-значений

 

При вычислении выражений может возникнуть необходимость в преобразовании типов. Если операнды, входящие в выражение, одного типа, и операция для этого типа определена, то результат выражения будет иметь тот же тип.

 

Если операнды разного типа и (или) операция для этого типа не определена, перед вычислениями автоматически выполняется преобразование типа по правилам, обеспечивающим приведение более коротких типов к более длинным для сохранения значимости и точности. Автоматическое ( неявное ) преобразование возможно не всегда, а только если при этом не может случиться потеря значимости.

 

Если неявного преобразования из одного типа в другой не существует, программист может задать явное преобразование типа с помощью операции (тип)x. Его результат остается на совести программиста.

 

Внимание

 

Арифметические операции не определены для более коротких, чем int, типов. Это означает, что если в выражении участвуют только величины типов sbyte, byte, short и ushort, перед выполнением операции они будут преобразованы в int. Таким образом, результат любой арифметической операции имеет тип не менее int.

 

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








Дата добавления: 2015-08-08; просмотров: 705;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.