Операции.
Объектно-ориентированное программирование
Можно заключать выражения в скобки для принудительного вычисления некоторых частей выражения раньше других. Например, выражение 2 + 3 * 2 в обычном случае будет иметь значение 8, поскольку операции умножения выполняются раньше операций сложения, а результатом вычисления выражения (2 + 3) * 2 будет число 10, поскольку компилятор C# получит данные о том, что операцию сложения (+) нужно вычислить… Читать ещё >
Операции. Объектно-ориентированное программирование (реферат, курсовая, диплом, контрольная)
Переменные и константы могут объединяться с помощью операций. В языке CU операция — это термин или символ, получающий на вход одно или несколько операндов (переменных или констант) или выражений (переменных или констант, связанных между собой знаками операций) и возвращающий значение некоторого типа (табл. 3.2).
Операции, получающие на вход один операнд, например операция приращения ++, или new, называются унарными операциями. Операции, получающие на вход два операнда, например арифметические операции (+, -, *, /), называются бинарными операциями. И только одна операция языка CU получает на вход три операнда и называется тернарной операцией — это условная операция (?:).
Таблица 3.2.
Описание операций языка C#
Основные операции | ||||||
Выражение | Описание | |||||
x.y. | доступ к элементам типа. | |||||
f (x). | вызов метода и делегата. | |||||
а[х]. | доступ к массиву и индексатору. | |||||
Х++. | постфиксное приращение. | |||||
Х-; | постфиксное уменьшение. | |||||
new Т (…). | создание объекта класса или делегата. | |||||
new Т (…) {…}. | создание объекта с инициализацией. | |||||
New Т[…]. | создание массива (см. разд. 3.5). | |||||
typeof (T). | получение объекта System. Туре для Т. | |||||
delegate {}. | анонимная функция (анонимный метод). | |||||
Унарные операции | ||||||
Выражение | Описание | |||||
— X. | отрицательное значение. | |||||
!х. | логическое отрицание. | |||||
~х. | поразрядное отрицание. | |||||
++Х. | префиксное приращение. | |||||
— X. | префиксное уменьшение. | |||||
(Т)х. | явное преобразование х в тип Т (кастинг). | |||||
Мультипликативные операции | Аддитивные операции | |||||
Выражение | Описание | Выражение | Описание | |||
*. | умножение. | х + у. | сложение, объединение строк. | |||
деление. | х-У. | вычитание. | ||||
%. | остаток. | |||||
Операции сдвига | Операции равенства | |||||
Выражение | Описание | Выражение | Описание | |||
х «у. | сдвиг влево. | равно. | ||||
х «у. | сдвиг вправо. | х ≠ у. | не равно. | |||
Операции отношения и типа | ||||||
Выражение | Описание | |||||
х < у. | меньше. | |||||
х > у. | больше. | |||||
х <= у. | меньше или равно. | |||||
х >= у. | больше или равно. | |||||
х is Т. | возвращает значение true, если х относится к типу Т, в противном случае возвращает значение false. | |||||
х as Т. | возвращает х типа Т или нулевое значение, если х не относится к типу Т. | |||||
Операции назначении и анонимные операции | ||||||
Выражение | Описание | |||||
присваивание. | ||||||
х ор= у. | составные операции присвоения: +=, -=, *= /= %= &=,≠, ≠, «=, «=. | |||||
Логические, условные операции и Null-операции. | ||||||
Категория | Выражение | Описание | ||||
Логическое. AND. | х & у. | целочисленное поразрядное AND, логическое AND. | ||||
Логическое исключающее. XOR. | х л у. | целочисленное поразрядное исключающее XOR, логическое исключающее XOR. | ||||
Логическое OR. | х|y. | целочисленное поразрядное OR, логическое OR. | ||||
Условное AND. | X && у. | вычисляет у только если х имеет значение true. | ||||
Условное OR. | X || у. | вычисляет у только если х имеет значение false. | ||||
Объединение нулей. | х??у. | равно у, если х = null, в противном случае равно X. | ||||
Условное. | х? y: z. | равно у, если х имеет значение true: равно z, если х имеет значение false. | ||||
Когда выражение содержит несколько разных операций, то порядок выполнения определяется на основе приоритетов операций, а если операции одинаковые, то порядок их выполнения задается их ассоциативностью (табл. 3.3).
Вычисление выражений начинается с выполнения операций высшего приоритета. Первым делом вычисляются выражения в круглых скобках — (ехрг), определяются значения полей объекта — х. у, вычисляются функции — f (x), переменные с индексами — a[i].
Если есть несколько операций с одинаковым приоритетом, то они вычисляются в соответствии с их ассоциативностью. Операции с левой ассоциативностью вычисляются слева направо. Например, х * у / z вычисляется как (x*y)/z. Операции с правой ассоциативностью вычисляются справа налево. Операции присваивания и тернарная операция (?:) имеют правую ассоциативность. Все другие двоичные операции имеют левую ассоциативность.
Можно заключать выражения в скобки для принудительного вычисления некоторых частей выражения раньше других. Например, выражение 2 + 3 * 2 в обычном случае будет иметь значение 8, поскольку операции умножения выполняются раньше операций сложения, а результатом вычисления выражения (2 + 3) * 2 будет число 10, поскольку компилятор C# получит данные о том, что операцию сложения (+) нужно вычислить до выполнения операции умножения (*).
Таблица 3.3.
Приоритеты и ассоциативность операций языка C#.
Приоритет | Категория | Операции | Ассоциативность |
Первичные. | (expr) х. у f (x) а[х] х++ х— new sizeof (t) typeof (t) checked (expr) unchecked (expr). | Слева направо. | |
Унарные. | + -! ~ ++xx (T)x. | Слева направо. | |
Мультипликативные. (Умножение). | */%. | Слева направо. | |
Аддитивные (Сложение). | + ; | Слева направо. | |
Сдвиг. | " «. | Слева направо. | |
Отношения, проверка типов. | = is as. | Слева направо. | |
Эквивалентность. | == ≠. | Слева направо. | |
Логическое. | &. | Слева направо. | |
Логическое исключающее ИЛИ (XOR). | ||. | Слева направо. | |
Логическое ИЛИ (OR). | Слева направо. | ||
Условное И. | &&. | Слева направо. | |
Условное ИЛИ. | II. | Слева направо. | |
Условное выражение. | ?: | Справа налево. | |
Присваивание. | = *= /= %= += -= «= «= &= A= |=. | Справа налево. |
Порядок выполнения операций с объектами пользовательских классов и структур можно изменить. Такой процесс называется перегрузкой операций (рассмотрено в разд. 4.8).
Следует отметить, что в языке C# нет операции возведения в степень. Для возведения в степень используется статический метод Pow () класса System.Math.