Над числовыми типами определены арифметические операции, их операнды числа и результатом является некоторое число. Мы можем комбинировать в выражениях с арифметическими операторами как целочисленные типы так и типы с плавающей запятой, при этом все значения будут переводится в тип с плавающей запятой.
Например в выражении “1 + 1.2” результатом будет “2.2.” При вычисление значение 1 будет рассматриваться под типом double. В некоторых ситуациях этого не происходит, хотя вам может это показаться. Например, операция “5 / 10” должна дать нам “0.5”. Но вы используете в таком выражении тип int, а он не подразумевает остаток, в результате у нас будет число 0. Избежать этого можно приписав к числам постфикс, который укажет им более подходящий тип. Например f, который даст тип float или d который даст тип double. “5d / 10d = 0.5”.
Оператор | Описание | Пример |
+ | Складывает два числа; | 2 + 2 = 4; |
– | Вычитает одно число из другого; | 4 – 2 = 2; |
* | Умножает два числа; | 4 * 2 = 8; |
/ | Делит одно число на другое; | 14 / 5 = 2; |
% | Возвращает остаток от деления одного числа на другое; | 14 / 5 = 4; |
Конкатенация строк
Некоторые операторы, хоть и выглядят как арифметические, примененные к не числовым типам имеют другое значение. В C# мы можем перегрузить оператор для определённого типа. Например, для типа string перегружен оператор “+”, что даёт нам соединения двух строк.
Пример
“Hello ” + “World” = “Hello World”;
С ним стоит быть аккуратней, так как строка + число дает строку. В таком выражении число конвертируется в строку.
Пример:
“Number = ” + 10 = “Number = 10”;
Или такое:
“10” + 10 = “1010”;
Иногда нам хочется в одном выражении вычислить два значения и соединить их со строкой. В таком случае у нас может возникнуть проблема. Например:
“Result = ” + 10 + 10;
Мы ожидаем строку “Result = 20”, но фактически увидим “Result = 1010”. Почему? Если разбирать по порядку, то сначала выполнится эта часть выражения
“Result = “ + 10;
Мы знаем, что если слева или справа от плюс строка, то противоположная сторона тоже становится строкой. В итоге мы получим выражение:
“Result = ” + “10” = “Result 10”;
Потом переходим к следующей части:
“Result = 10” + 10;
Тут это всё повторяется и в результате мы видим такой интересный результат. Починить это всё можно с помощью круглых скобок, которые задают приоритет.
“Result = ” + (10 + 10);
В таком случае мы сначала сложим две десятки, а потом присоединим их к строке.