Поделиться через


Преобразование строк в типы данных .NET Framework

Если нужно преобразовать строку в тип данных .NET Framework, используйте метод XmlConvert, соответствующий требованиям приложения. Список всех методов преобразования, доступных в классе XmlConvert, см. в разделе Элементы XmlConvert.

Строка, возвращенная методом ToString, представляет строковую версию переданных данных. Кроме того, существует несколько типов платформы .NET Framework, которые преобразуются с помощью класса XmlConvert и не используют методы класса System.Convert. Класс XmlConvert следует спецификации типа данных XSD и содержит тип данных, для которого может выполняться сопоставление XmlConvert.

В следующей таблице перечислены типы данных .NET Framework и строковые типы, возвращаемые с помощью сопоставления типа данных XSD. Эти типы .NET Framework не могут обрабатываться методами System.Convert.

Тип платформы .NET Framework

Возвращаемая строка

Boolean

«true», «false»

Single.PositiveInfinity

«INF»

Single.NegativeInfinity

«-INF»

Double.PositiveInfinity

«INF»

Double.NegativeInfinity

«-INF»

DateTime

Используется формат «гггг-ММ-ддТЧЧ:мм:ссzzzzzz» и его сокращенные версии.

Timespan

Используется формат PnYnMnTnHnMnS, то есть значение P2Y10M15DT10H30M20S соответствует длительности в 2 года, 10 месяцев, 15 дней, 10 часов, 30 минут и 20 секунд.

ПримечаниеПримечание

Если любой из типов .NET Framework, представленных в таблице, преобразуется в строку с использованием метода ToString, возвращаемая строка имеет не базовый тип, а тип строки XSD.

Типы значений DateTime и Timespan отличаются тем, что DateTime представляет момент времени, а TimeSpan представляет интервал времени. Форматы DateTime и Timespan приведены в спецификации типов данных схемы XML (XSD). Например.

Dim writer As New XmlTextWriter("myfile.xml", Nothing)
Dim [date] As New DateTime(2001, 8, 4)
writer.WriteElementString("Date", XmlConvert.ToString([date]))
XmlTextWriter writer = new XmlTextWriter("myfile.xml", null);
DateTime date = new DateTime (2001, 08, 04);
writer.WriteElementString("Date", XmlConvert.ToString(date));

Результаты

<Date>2001-08-04T00:00:00</Date>.

В следующем примере кода целочисленное значение преобразуется в строку.

Dim writer As New XmlTextWriter("myfile.xml", Nothing)
Dim value As Int32 = 200
writer.WriteElementString("Number", XmlConvert.ToString(value))
XmlTextWriter writer = new XmlTextWriter("myfile.xml", null);
Int32 value = 200;
writer.WriteElementString("Number", XmlConvert.ToString(value));

Результаты

<Number>200</Number>

Однако если строка преобразуется в тип Boolean, Single или Double, то возвращаемый тип .NET Framework не совпадает с типом, возвращаемым при использовании класса System.Convert.

Преобразование строки в тип Boolean

В следующей таблице показано, какие типы создаются для заданных входных строк во время преобразования строки в значение Boolean с помощью метода ToBoolean.

Допустимый строковый входной параметр

Выходной тип .NET Framework

true

Boolean.True

«1»

Boolean.True

false

Boolean.False

«0»

Boolean.False

Например, пусть задан следующий XML-код.

Входные данные

<Boolean>true</Boolean>
<Boolean>1</Boolean> 

Обе записи обрабатываются следующим кодом, где bvalue является System.Boolean.True:

Dim bvalue As Boolean = _
   XmlConvert.ToBoolean(reader.ReadElementString())
Console.WriteLine(bvalue)
Boolean bvalue = XmlConvert.ToBoolean(reader.ReadElementString());
Console.WriteLine(bvalue);

Преобразование строки в тип Single

В следующей таблице показано, какие типы создаются для заданных входных строк во время преобразования строки в значение Single с помощью метода ToSingle.

Допустимый строковый входной параметр

Выходной тип .NET Framework

"INF"

Single.PositiveInfinity

"-INF"

Single.NegativeInfinity

Преобразование строки в тип Double

В следующей таблице показано, какие типы создаются для заданных входных строк во время преобразования строки в значение Double с помощью метода ToDouble.

Допустимый строковый входной параметр

Выходной тип .NET Framework

"INF"

Double.PositiveInfinity

"-INF"

Double.NegativeInfinity

Следующий код записывает строку <Infinity>INF</Infinity>:

Dim value As Double = Double.PositiveInfinity
writer.WriteElementString("Infinity", XmlConvert.ToString(value))
Double value = Double.PositiveInfinity;
writer.WriteElementString("Infinity", XmlConvert.ToString(value));

См. также

Основные понятия

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

Преобразование типов .NET Framework в строки