Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






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




При разработке приложения, может понадобиться преобразовать данные из одного типа в другой. Преобразования необходимы, когда значение одного типа должно быть присоено переменной другого типа. Например, может понадобиться преобразовать строковое значение «99», прочитанное из текстового файла в целое значение 99 для его хранения в целочисленной переменной. Процесс преобразования значение одного типа данных в другой называется преобразование (conversion) или приведение (casting).

В.NET Framework существует два типа преобразования:

· Неявное преобразование (implicit conversion). Неявное преобразование выполняется автоматически общеязыковой средой выполнения (CLR) согласно операциям, которые гарантированно завершатся успешно без потери информации.

· Явное преобразование (explicit conversion) или приведение (casting). Приведение требует, чтобы был написан код для выполнения преобразования, которое, в противном случае, может привести к потере информации или ошибке.

Явное преобразование уменьшает возможность ошибки в коде и делает его более эффективным. В C# запрещены неявные преобразования, которые приводят к потере точности. Однако следует помнить, что и некоторые явные преобразования могут привести к непредсказуемым результатам.

Неявное преобразование. Неявное преобразование происходит при автоматическом преобразовании значения из одного типа данных в другой. Преобразование не требует никакого специального синтаксиса в исходном коде. C# позволяет только безопасные неявные преобразования, такие, как расширение числа. В следующем примере показано неявное преобразование из целочисленной переменной в тип long.

int a = 4;

long b;

b = a; // Implicit conversion of int to long

Такое преобразование всегда успешно и никогда не приведет к потере информации. Однако, обратное преобразование не верно, нельзя неявно преобразовать тип long в тип int, потому что это преобразование рискует потерей информации (значение типа long может выходить за пределы диапазона, который поддерживает тип int). В следующей таблице приведены неявные преобразования типов, которые поддерживаются в C#.

Из В
sbyte short, int, long, float, double, decimal;
byte short, ushort, int, uint, long, ulong, float, double, decimal
short int, long, float, double, decimal
ushort int, uint, long, ulong, float, double, decimal
int long, float, double, decimal
uint long, ulong, float, double, decimal
long, ulong float, double, decimal
float double
char ushort, int, uint, long, ulong, float, double, decimal

Явные преобразования. В C# можно использовать операцию приведения для выполнения явного преобразования. Приведение типов указывает на тип преобразования в круглых скобках.

DataType variableName1 = (castDataType)variableName2;

Таким способом можно выполнять только значимые преобразования, такие как преобразование long к int. Нельзя использовать приведение, если формат данных физически измененяется, например, если нужно конвертировать строку в целое число. Для выполнения таких преобразований, используются методы класса System.Convert. Одно из преимуществ подхода с применением класса System.Convert связано с тем, что он позволяет выполнять преобразования между типами данных нейтральным к языку образом, следовательно, все языки, ориентированные на CLR могут использовать этот класс. Этот класс можно использовать для облегчения преобразований, поскольку Microsoft IntelliSense помогает найти метод преобразования, который нужен. Класс System.Convert предоставляет методы, которые могут преобразовать данные базового типа в другой базовый тип данных. Эти методы имеют имена, такие как ToDouble, ToInt32, ToString и так далее. В следующем примере тип string преобразуется к типу int.

string possibleInt = "1234";

int count = Convert.ToInt32(possibleInt);

В дополнение к методу Convert.ToString, типы реализуют собственный метод ToString.

int number = 1234;

string numberString = number.ToString();

Некоторые из встроенных типов данных в C# обеспечивают метод TryParse, который позволяет определить, является ли преобразование удачным, перед его выполнением.

int number = 0;

string numberString = "1234";

if (int.TryParse(numberString, out number))

{

// Conversion succeeded, number now equals 1234

}

else

{

// Conversion failed, number now equals 0

}

http://go.microsoft.com/fwlink/?LinkId=192894






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных