русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Преобразование типов, определяемых пользователем с помощью конструкторов и операций преобразования.


Дата добавления: 2015-07-09; просмотров: 884; Нарушение авторских прав


Зачем нам вообще необходимы явные преобразования? Для тех случаев, когда у нас компилятор сам не может преобразовать типы (при этом возникает ошибка). Давайте более подробно рассмотрим такие ситуации:

· Преобразование int в short – если число с типом данных int слишком большое, то при преобразовании в short потеряются некоторые данные;

· Преобразование int в uint и uint в int – такая же причина;

· Преобразование float в int – логично, что потеряются все данные, которые находились после запятой;

· Преобразование любых числовых типов в char – ясно, что тут будут потеряны все данные.

Логично, что компилятор понимает, что в таких случаях могут быть ошибки программиста, поэтому данные преобразования не проводит – генерирует ошибки. Но сам программист может заставить компилятор провести такое приведение типов, используя приведения (costs):

Long znach = 12345;

Int I = (int)zhach;

Здесь в скобки заключаем тот тип, к которому необходимо привести значение, которое приводится после скобок. Если вдруг значение переменной znach будет очень большим (то есть – больше, чем максимально возможное в типе int), при явном преобразовании компилятор ошибки не выдаст (понадеется на программиста), а вы потеряете данные.

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

Long zhack 1234567890;

Int I = checked((int)znach);

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

Явное преобразование типов – это мощный механизм, с помощью которого можно преобразовать почти все типы данных друг в друга. Но таким механизмом нельзя преобразовать тип данных bool (логический тип) ни в какой другой тип данных.



 

Еще просто пример на С# явного преобразования:

class Test

{

static void Main()

{

double x = 1234.7;

int a;

// Cast double to int.

a = (int)x;

System.Console.WriteLine(a);

}

}

// Output: 1234




<== предыдущая лекция | следующая лекция ==>
Перегрузка бинарных операций | Неявное преобразование типов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.099 сек.