![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Преобразование типов
В 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. Оператор безусловного перехода
|