![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Любое выражение в языке C# состоит из операндов и операций. Следующий список содержит допустимые операции. Они разбиты на группы. Порядок групп соответствует приоритету операций.
1. Первичные операции
x.m Доступ к элементу типа
x(...) Вызов методов и делегатов
x[...] Доступ к элементу массива или индексатора
x++ Пост-инкремент
x-- Пост-декремент
new T(...) Создание объекта или делегата
new T(...){...} Создание объекта с инициализацией
new {...} Инициализация объекта анонимного типа
new T[...] Создание массива с элементами типа T
typeof(T) Получение для типа T объекта System.Type
checked(x) Вычисление в контролируемом контексте
unchecked(x) Вычисление в неконтролируемом контексте
default(T) Получение значения по умолчанию для типа T
delegate {...} Описание анонимного метода
2. Унарные операции
+x Идентичность
-x Отрицание
!x Логическое отрицание
~x Битовое отрицание
++x Пре-инкремент
--x Пре-декремент
(T)x Явное преобразование x к типу T
sizeof(T) Размер в байтах для типа значения T
3. Мультипликативные операции
x * y Умножение
x / y Деление
x % y Вычисление остатка
4. Аддитивные операции
x + y Сложение чисел, сцепление строк и делегатов
x – y Вычитание
5. Операции сдвига
x << y Битовый сдвиг влево
x >> y Битовый сдвиг вправо
6. Операции отношения и проверки типов
x < y Меньше
x > y Больше
x <= y Меньше или равно
x >= y Больше или равно
x is T Возвращает true, если x приводим к типу T
x as T Возвращает x, приведённый к типу T, или null
7. Операции равенства
x == y Равно
x!= y Не равно
8. Логическое AND
x & y Целочисленное битовое AND, булево AND
9. Логическое XOR
x ^ y Целочисленное битовое XOR, булево XOR
10. Логическое OR
x | y Целочисленное битовое OR, булево OR
11. Условное AND
x && y Вычисляется y, только если x равно true
12. Условное OR
x || y Вычисляется y, только если x равно false
13. Операция проверки на null
x?? y Возвращает x, если x не равно null. Иначе возвращает y
14. Условие
x? y: z Если x равно true, вычисляется y, иначе z
15. Операции присваивания и лямбда-выражений
x = y Присваивание
x op= y Составное присваивание, поддерживаются операции
*= /= %= += -= <<= >>= &= ^= |=
x => code Описывает блок кода code
Поясним использование некоторых операций. Для контроля значений, получаемых при работе с числовыми выражениями, в C# предусмотрено использование контролируемого и неконтролируемого контекстов. Контролируемый контекст объявляется в форме checked операторный-блок, либо как операция checked(выражение). Если при вычислении в контролируемом контексте получается значение, выходящие за пределы целевого типа, то генерируется либо ошибка компиляции (для константных выражений), либо обрабатываемое исключение (для выражений с переменными). Неконтролируемый контекст объявляется в форме unchecked операторный-блок, либо как операция unchecked(выражение). При использовании неконтролируемого контекста выход за пределы целевого типа ведёт к автоматическому «урезанию» результата либо путём отбрасывания бит (целые типы), либо путём округления (вещественные типы). Неконтролируемый контекст применяется в вычислениях по умолчанию.
Арифметические операции +, -, *, /, % определены для всех числовых типов, за исключением 8- и 16-битовых целых типов. Для коротких целых типов компилятор выполняет неявное преобразование типов (при этом операция с целыми числами должна остаться операцией с целыми числами). Арифметические операции для типов с плавающей запятой не генерируют исключительных ситуаций при переполнении, потере точности или делении на ноль. В таких случаях получаются особые значения, определённые в виде констант double.NaN, double.NegativeInfinity, double.PositiveInfinity (т.е. «не число», «минус бесконечность», «плюс бесконечность»).
Операторы
Методы пользовательских типов состоят из операторов, которые выполняются последовательно. Часто используется операторный блок – последовательность операторов, заключённая в фигурные скобки.
Дата публикования: 2015-11-01; Прочитано: 359 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!