понедельник, 21 июня 2010 г.

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


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

Преобразование типов данных – это очень важный аспект программирования (не только на языке c#, но и на всех остальных языках).
Пример преобразования типов данных – это перевод слова «пять» в цифру 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. Это и есть смысл этого преобразования типов данных.

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

В среду рассмотрим до конца эту обширную тему – будем изучать явное преобразование типов данных.


Скоро выпускной у школьников, удачи им...


Комментариев нет:

Отправить комментарий