Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Выражения и операции



Любое выражение в языке 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...