Преобразование типов происходит не только при присваивании, но и в выражениях, где можно использовать несколько совместимых типов. Данные различных типов в одном выражении преобразуются к одному типу по мере выполнения операций. Преобразование типов выполняется по правилам расширяющего изменения типов.
Правила возможных преобразований представлены на схеме (рис. 5.1), приведенной в своей книге Т.А. Павловской. По схеме легко понять, например, что если один операнд имеет тип decimal,то второй операнд приводится к этому типу. Однако, если второй операнд типа double, это приведет к ошибке, потому что пути пребразования из double в decimal нет. Преобразование выполняется не последовательно по схеме, а непосредственно из исходного типа более низкого уровня в результирующий тип.

Рисунок 5.1- Неявные арифметические преобразования типов
Следует помнить, что арифметические операции не определены для более коротких, чем int, типов. Это означает, что если в выражении участвуют только величины типов sbyte, byte, short и ushort, перед выполнением операции они будут преобразованы в int. Таким образом, результат любой арифметической операции имеет тип не менее int.