Для операции сложения в форме X+Y применяется расширение типов для выбора стандартной реализации. Тип результата операции совпадает с типом операндов (после их возможного расширения). Определены следующие стандартные реализации, все они вычисляют сумму операндов:
Целочисленное сложение определено для типов Integer, UInteger, Long и ULong. Если результатом операции является число, выходящее за границы представляемых значений результирующего типа, то возбуждается исключительная ситуация типа System.OverflowException.
Вещественное сложение определено для типов Float и Double. Сумма вычисляется по правилам IEEE 754. Следующая таблица определяет возможные комбинации значений операндов и соответствующие им результаты операции. В таблице x и y это ненулевые конечные значения, а z это результат x+y. Если x и y имеют одну величину но разные знаки, то z будет положительным нулем. Если результирующее значение слишком велико для представления результирующим типом, то z будет бесконечностью того же знака что и x+y.
| y | +0 | –0 | +∞ | –∞ | NaN | |
| x | z | x | x | +∞ | –∞ | NaN |
| +0 | y | +0 | +0 | +∞ | –∞ | NaN |
| -0 | y | +0 | -0 | +∞ | –∞ | NaN |
| +∞ | +∞ | +∞ | +∞ | +∞ | NaN | NaN |
| –∞ | –∞ | –∞ | –∞ | NaN | –∞ | NaN |
| NaN | NaN | NaN | NaN | NaN | NaN | NaN |
Десятичное сложение определено для типа Decimal. Если результирующее значение слишком велико для представления типом Decimal, то возбуждается исключительная ситуация типа System.OverflowException.
Сложение значений перечислимого типа. Для каждого перечислимого типа E и его базового типа U определены следующие операции: X+Y и Y+X, где X имеет тип E, а Y тип U. Данные операции вычисляются как ((X As U) + (Y As U)) As E.
Конкатенация строк определена для операндов типа String. Если один из операндов равен Null, то вместо него используется пустая строка. Результатом конкатенации является строка, состоящая из символов первого операнда за которыми следуют символы второго операнда.
См.также: