Вчера я описал типы данных в c#. Как уже было сказано, знаний только о типах данных не хватит, чтобы написать нормальное, по сложности, приложение. Необходимо знать и правила преобразований типов данных. Поэтому сегодня предлагаю посвятить этим преобразованиям всю статью.
Преобразование типов данных – это очень важный аспект программирования (не только на языке c#, но и на всех остальных языках).
Пример преобразования типов данных – это перевод слова «пять» в цифру 5.Для нас это одно и то же, а для компьютера – две совершенно разных вещи. А в программировании (не только больших программ) мы с такими вещами встречаемся очень и очень часто. Поэтому преобразования данных нам необходимо очень хорошо изучить.
Пример преобразования типов данных – это перевод слова «пять» в цифру 5.Для нас это одно и то же, а для компьютера – две совершенно разных вещи. А в программировании (не только больших программ) мы с такими вещами встречаемся очень и очень часто. Поэтому преобразования данных нам необходимо очень хорошо изучить.
Выделяют два глобальных способа преобразования типов данных: это явное преобразование и неявное преобразование. Рассмотрим каждое такое преобразование более подробно (сегодня - неявное, в следующий раз - явное):
Неявное преобразование. К такому преобразованию типов данных относятся следующие виды преобразований:
Тождественное;
Неявное числовое;
Неявное перечислимых типов;
Неявные ссылочные;
В объекты;
Преобразования параметров типа;
Преобразования константных выражений;
Пользовательские.
Тождественное преобразование данных;
Это преобразование типов данных происходит тогда, когда надо преобразовать тип данных в самого себя. Практической пользы от него, оно существует для того, чтобы не появлялось ошибки при такого вида преобразовании.
Неявные числовые преобразования:
Как и понятно из названия – это преобразования чисел различных типов данных. Приведу несколько примеров:
Sbyte в decimal, float, int, long и тд;
Long в double, decimal, float;
Char в double, decimal, ushort, int, long и тд;
Short в double, int, float и тд;
Int в double, decimal, float и тд.
Преобразований данного виду существует множество, но все приводить не буду. Смысл в том, что такого вида преобразование типов данных ведет к некоторой потере точности. Так что не стоит об этом забывать. Кроме того, в Char автоматически преобразовать что-либо невозможно.
Преобразования перечислимых типов:
Такое преобразование типов данных может происходить только с целочисленными типами (byte, int, long и тд). То есть, каждый элемент одного перечня преобразуется в другой перечень с автоматической сменой типов данных.
Ссылочные преобразования – также бывают многих видов, приведу для примера несколько из таких:
Преобразование ссылочного типа в объект;
Преобразование любого типа массива в System.Array;
Преобразование любого типа делегата в System.Delegate;
Преобразование типа null в ссылочный тип и тд.
Преобразование в объекты:
При нем можно преобразовывать любой тип в Object, System.ValueType и любой тип интерфейса. Кроме того, можно преобразовать любые перечни в System.Enum.
Преобразования параметров типа:
Если параметр имеет тип Type1 и одновременно зависит от параметра типа Type2, то Type1 можно автоматически преобразовать в Type2. Это и есть смысл этого преобразования типов данных.
Пользовательские преобразования зависят от того, какие именно типы данных создал пользователь во время своей работы.
В среду рассмотрим до конца эту обширную тему – будем изучать явное преобразование типов данных.
Комментариев нет:
Отправить комментарий