Стандартные операторы ++ и -- применимы к следующим типам: sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal и любым типам перечисления. Стандартный оператор ++ возвращает значение, полученное добавлением 1 к операнду, а стандартный оператор -- возвращает значение, полученное вычитанием 1 из операнда. В контексте checked если результат такого сложения или вычитания выходит за пределы допустимого диапазона для типа результата и результат имеет целый тип или тип перечисления, то возникает исключение System.OverflowException.
Примеры.
double x;
x = 1.5;
Console.WriteLine(++x);
x = 1.5;
Console.WriteLine(x++);
Console.WriteLine(x);
Бинарные операторы содержат два операнда и они записываются в виде инфикса (например, x + y).
В контексте checked если произведение выходит за пределы диапазона типа результирующего значения, возникает исключение System.OverflowException. В контексте unchecked о переполнениях не сообщается, и все старшие биты, выходящие за пределы диапазона результирующего значения, отбрасываются.
Пример.
int a = 2147483647;
int b = 2147483647;
var t = a * b;
Console.WriteLine(t);
int a = 2147483647;
int b = 2147483647;
var t = checked(a * b);
Console.WriteLine(t);
Произведение чисел с плавающей запятой. Пример.Умножение числа типа int на число типа double.
var t = -.5 * 2;
Console.WriteLine(t);
В результате тип переменной – doudle.
Произведение вычисляется в соответствии с арифметическими правилами стандарта IEEE 754. В следующей таблице приведены результаты всех возможных комбинаций ненулевых конечных значений, нулей, бесконечных значений и ошибок NaN В таблице x и y являются положительными конечными значениями, а z является результатом x * y. Если результат слишком велик для целевого типа, то z равно бесконечности. Если результат слишком мал для целевого типа, то z равно нулю.