Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






В C# преобразования делятся на неявные и явные. К неявным относятся те преобразования, результат выполнения которых всегда успешен и не приводит к потере точности данных. Неявные преобразования выполняются автоматически. Для арифметических данных это означает, что в неявных преобразованиях диапазон типа назначения содержит в себе диапазон исходного типа. Например, преобразование из типа byte в тип int относится к неявным, поскольку диапазон типа byte является подмножеством диапазона int. Это преобразование всегда успешно и не может приводить к потере точности. Заметьте, преобразования из целочисленных типов к типам с плавающей точкой относятся к неявным.

К явным относятся разрешенные преобразования, успех выполнения которых не гарантируется или может приводить к потере точности. Преобразование из типа int в тип byte относится к явным, поскольку оно небезопасно и может приводить к потере значащих цифр.

Важным классом преобразований являются преобразования в строковый тип и наоборот. Для встроенных типов определен метод ToString(). Метод ToString можно вызывать явно, но, если явный вызов не указан, то он будет вызываться неявно, всякий раз, когда по контексту требуется преобразование к строковому типу:

string s, s1;

int age;

double money;

s = " Владимир Петров ";

s1 = " Возраст: ";

age = 27;

s = s + s1 + age.ToString();

s1 = " Зарплата: ";

money = 2700.50;

s = s + s1 + money;

Здесь для переменной age метод был вызван явно, а для переменной money он вызывается автоматически.

Преобразования из строкового типа в другие типы, например, в арифметический, должны выполняться явно. Для этой цели можно использовать соответствующие методы класса Convert, о котором речь будет идти далее.

Необходимо обязательно запомнить, что все переменные в языке С# должны быть инициализированы до их первого использования.

Для преобразования строкового представления целого числа в тип int мы используем метод int.Parse(), который реализован для всех числовых типов данных. Таким образом, если нам потребуется преобразовать строковое представление в вещественное, мы можем воспользоваться методом float.Parse() или double.Parse(). В случае, если соответствующее преобразование выполнить невозможно, то выполнение программы прерывается и генерируется исключение System.FormatExeption (входная строка имела неверный формат).

Иерархия типов данных схематично приведена на рисунке 2.1.

Рисунок 2.1 – Иерархия типов данных

Контрольные вопросы:

1. Какие целочисленные типы данных существуют в C#?

2. Назовите два типа данных с плавающей точкой.

3. Какие типы данных могут использоваться в качестве операндов логических операторов?

4. Что такое операция приведения типа?

5. Можно ли без выполнения операции приведения типа присвоить значение типа short переменной типа int? А значение типа byte - переменной типа char?

6. Справедливо ли утверждение, что переменная типа bool может хранить любое значение, поскольку любое ненулевое значение является истинным?

Лекция 4. Выражения и операторы языка С#

План:

1. Выражения

2. Операторы

2.1. Операторы ввода и вывода

2.2. Операторы ветвления

2.3. Оператор безусловного перехода






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.