ВУЗ:
Составители:
Рубрика:
48
ся операция сложения, результат имеет тип int и не может быть неявно
преобразован в тип byte, – возникает ошибка еще на этапе компиляции.
Правильной будет следующая запись оператора:
b3 = (byte)(b1+b2);
3.3.2. Операция присваивания
В C# присваивание является операцией, которая может использо-
ваться в выражениях. В выражении, называемом множественным при-
сваиванием, списку переменных присваивается одно и то же значение.
Например:
x = y = z = w =(u+v+w)/(u-v-w);
При присвоении переменных разного типа выполняется преобра-
зование типов. Компилятор пытается выполнить преобразование типа
переменной стоящей справа в тип переменной, стоящей слева. Присваи-
вание переменной стоящей слева (тип T) значения переменной или ре-
зультата вычисления выражения (типа T1) возможно только в следую-
щих случаях:
типы T и T1 совпадают;
тип T является базовым (родительским) типом для типа T1 (в со-
ответствии с наследованием типов);
в определении типа T1 описано явное или неявное преобразова-
ние в тип T (см. раздел 4.9).
Так как все классы в языке C# – встроенные и определенные поль-
зователем – по определению являются потомками класса Object, то от-
сюда и следует, что переменным класса Object можно присваивать вы-
ражения любого типа.
Для типов может быть задано неявное (implicit) или явно (explicit)
преобразования. Например, для встроенных арифметических типов су-
ществует схема неявных преобразований, показанная на рис. 3.4.
Если на этой диаграмме есть путь (стрелками) от типа А к типу В,
то это означает, что имеется неявное преобразования из типа А в тип В.
Например, из short в float. Все остальные преобразования между
подтипами арифметического типа существуют, но являются явными.
Например, из float в int.
Для указания явного преобразования типов используется опера-
ция приведения к типу (кастинг), которая имеет высший приоритет и
следующий вид:
(type) <выражение>
Она задает явное преобразование типа, определенного выражени-
ем, к типу, указанному в скобках. Например:
Страницы
- « первая
- ‹ предыдущая
- …
- 46
- 47
- 48
- 49
- 50
- …
- следующая ›
- последняя »