Преобразование типов. В C# преобразования делятся на неявные и явные
В 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.Оператор безусловного перехода
Выражения
Выражение– это синтаксическая единица языка, определяющая способ вычисления некоторого значения. Выражения состоят из операндов, операций и скобок. Каждый операнд является в свою очередь выражением или одним из его частных случаев – константой, переменной или функций.
Список математических функции, реализованных в С# приведен в приложении 3.
Операции выполняются в соответствии с приоритетами (см. приложение 2). Для изменения порядка выполнения операций используются круглые скобки. Если в одном выражении записано несколько операций одинакового приоритета, то унарные операции, условная операция и операции присваивания выполняются справа налево, остальные – слева направо.
Результат вычисления выражения характеризуется значением итипом.
В выражение могут входить операнды различных типов. Если операнды имеют одинаковый тип, то результат операции будет иметь тот же тип. Если операнды разного типа, то перед вычислениями выполняются преобразования более коротких типов в более длинные для сохранения значимости и точности.
Операторы
Дата добавления: 2015-10-26; просмотров: 1462;