Помощь в написании студенческих работ
Антистрессовый сервис

Операции присваивании. 
Объектно-ориентированное программирование

РефератПомощь в написанииУзнать стоимостьмоей работы

В ряде случаев можно задать требуемое преобразование явным образом, используя специальные методы преобразования, определенные в классе System. Convert, которые обеспечивают преобразование значения одного типа к значениям других типов (в том числе значения строкового типа к значениям встроенных типов). Если на этой диаграмме есть путь (стрелками) от типа, А к типу В, то это означает, что имеется… Читать ещё >

Операции присваивании. Объектно-ориентированное программирование (реферат, курсовая, диплом, контрольная)

В C# присваивание является операцией, которая может использоваться в выражениях. В выражении, называемом множественным присваиванием, списку переменных присваивается одно и то же значение. Например:

х = у = z = w =(u+v+w)/(u-v-w);

При присвоении переменных разного типа выполняется преобразование типов. Компилятор пытается выполнить преобразование типа переменной, стоящей справа, в тип переменной, стоящей слева.

Присваивание переменной, стоящей слева (тип Т), значения переменной или результата вычисления выражения (типа Т1) возможно только в следующих случаях:

  • • если типы Т и Т1 совпадают;
  • • если тип Т является базовым (родительским) типом для типа Т1 (в соответствии с наследованием типов);
  • • если имеется неявное преобразование типа Т1 в тип Т;
  • • если указано явное преобразование типа Т1 в тип Т;
  • • если в описании типа Т1 задано явное преобразование в тип Т (см. разд. 4.9).

Так как все классы в языке C# - встроенные и определенные пользователем — по определению являются потомками класса Object, то отсюда и следует, что переменным класса Object можно присваивать выражения любого типа.

Неявное преобразование типов

Для типов может иметься неявное (implicit) или задано явное (explicit) преобразование. Например, для встроенных арифметических типов существует схема неявных преобразований, показанная на рис. 3.4.

Неявное преобразование встроенных типов.

Рис. 3.4. Неявное преобразование встроенных типов.

Если на этой диаграмме есть путь (стрелками) от типа, А к типу В, то это означает, что имеется неявное преобразования из типа, А в тип В. Например, из short в float. Все остальные преобразования между подтипами арифметического типа существуют, но могут задаваться только явно, например из float в int.

Явное преобразование типов

Для задания явного преобразования типов используется операция приведения к типу (кастинг), которая имеет высший приоритет и следующий вид:

(type).

Она задает явное преобразование типа, определенного выражением, к типу, указанному в скобках. Например: int i = (int) 2.99; // i = 2;

В данном случае тип константы 2.99 (по умолчанию — это тип double) преобразуется в тип int, путем обрезания дробной части. Или, например, если описаны пользовательские типы Т и Р и для типа Т описано явное преобразование в тип Р, то возможна следующая запись:

Т у;

Р х = new Р (); у = (Т) х;

Следует отметить, что имеются явные преобразования внутри арифметического типа, но нет, например, явного преобразования арифметического типа в тип bool. Например:

double, а = 5.0; int р = (int)a;

bool b = (bool)a; //ошибка, такого преобразования нет!

В ряде случаев можно задать требуемое преобразование явным образом, используя специальные методы преобразования, определенные в классе System. Convert, которые обеспечивают преобразование значения одного типа к значениям других типов (в том числе значения строкового типа к значениям встроенных типов).

Показать весь текст
Заполнить форму текущей работой