Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы_2003.doc
Скачиваний:
14
Добавлен:
16.04.2019
Размер:
275.46 Кб
Скачать

14. Явное и неявное преобразование типов данных.

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

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

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

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

К явным преобразованиям относятся следующие преобразования: Все неявные преобразования, Явные преобразования числовых типов, Явные преобразования перечисляемых типов, Явные преобразования обнуляемых типов, Явные преобразования ссылочных типов, Явные преобразования типов интерфейса, Преобразования распаковки, Неявные динамические преобразования, Пользовательские явные преобразования. Явные преобразования могут произойти в выражениях приведения.

Набор явных преобразований включает все неявные преобразования.

15. Ввод с клавиатуры. Преобразование строк в числа.

При вводе с клавиатуры C# использует по умолчанию строковый тип данных. Числа вводятся следующим образом: сначала вводится число в строковом формате, а потом оно конвертируется в числовой формат. Для конвертирования используется класс Convert.

Работает следующим образом:

Допустим S это строка

Int i=System.Convert.ToInt32(S); - переведет строку s в 32 разрядное число. Аналогично можно перевести и в вещественное число и любое другое.

16. Перечислимые типы.

Перечисляемый тип является особым типом значения, который объявляет набор именованных констант.

Пример:

enum Color

{  Red,

  Green,

  Blue }

Здесь объявляется перечисляемый тип с именем Color, содержащий члены Red, Green и Blue.

Объявление перечисления объявляет новый перечисляемый тип. Объявление перечисления начинается с зарезервированного слова enum и содержит определение имени, доступности, базового типа и членов перечисления.

Каждый тип перечисления имеет соответствующий целый тип, называемый базовым типом типа перечисления. Этот базовый тип должен иметь возможность представлять все значения перечислителя, определенные в перечислении. Объявление перечисления может явно объявлять базовый тип byte, sbyte, short, ushort, int, uint, long или ulong. Обратите внимание, что тип char не может использоваться в качестве базового типа. Объявление перечисления, которое не содержит явное объявления базового типа, имеет базовый тип int.