Порядок вычисления выражения в программе

1. Вычисляется Cos(x) обращением к методу Cos(x)класса Math (обозначим результат через p1).

2. Вычисляется 6 + p1 (обозначим результат этой операции через p2).

3. Вычисляется x ´ x (обозначим результат этой операции через p3).

4. Вычисляется p2 + p3. Результат этой операции помещается в y.

В выражении могут присутствовать операнды разных типов. В приведенном примере первый операнд – литерал целого типа. Остальные операнды – типа double. Тип результата каждой операции зависит от типа операндов, участвующих в операции. Тип результата последней операции определяет тип результата вычисления выражения.

Определение типа результата операции осуществляется в соответствии с правилами:

1) если оба операнда целые (типа int), результат будет иметь тот же тип (int). В соответствии с этим при делении целого на целое получается целое число. Остаток от деления теряется.

2) если один из операндов вещественный (тип double), то результат будет вещественный (double). Второй операнд при необходимости автоматически преобразуется к типу double.

Замечание. Для часто встречающегося в программах оператора, изменяющего значение переменной типа int на 1 , например,

i=i+1; или i=i–1;

можно использовать более короткую запись:

i++; (инкремент) или i––; (декремент)

(см. гл. 2, примеры 2.7, 2.13).

Другие возможности сокращенной записи операторов здесь не рассматриваются.

Приведение и преобразование типов в С#

В C# можно выполнять следующие виды преобразований.

Неявные преобразования. Не требуют специального синтаксиса, поскольку преобразование безопасно для типов, и данные не теряются.

Неявное преобразование можно применить для встроенных числовых типов в случае если сохраняемое значение может уместиться в переменной без обрезания или округления до ближайшего.

Пример допустимого преобразования:

int i = 9;

double t = 1.0;

t = i;

Преобразование допустимо, так как переменная типа double (64-разрядное значение с плавающей запятой) может хранить любое значение, которое может хранить переменная типа int (32-разрядное целое число со знаком).

Пример недопустимого преобразования:

int i = 9;

double t = 1.0;

i = t;

Допускается также неявное преобразование от меньшего к большему целому типу (прил. 2).

Явные преобразования (приведения). Для явных преобразований необходим оператор преобразования. Для выполнения приведения необходимо заключить тип, в который производится приведение, в скобки перед преобразуемым значением или переменной.