Sdílet prostřednictvím


Převod řetězců na datové typy .NET

Pokud chcete převést řetězec na datový typ .NET, použijte metodu XmlConvert , která odpovídá požadavkům aplikace. Seznam všech metod převodu dostupných ve třídě XmlConvert naleznete v tématu XmlConvert.

Řetězec vrácený z ToString metoda je řetězcová verze dat, která jsou předána. Kromě toho existuje několik typů .NET, které převádějí pomocí XmlConvert třídy, ale nepoužívají metody ve třídě System.Convert . XmlConvert třída se řídí specifikací datového typu XML Schema (XSD) a má datový typ, na který XmlConvert může mapovat.

Následující tabulka uvádí datové typy .NET a typy řetězců, které se vrací pomocí mapování datových typů schématu XML (XSD). Tyto typy .NET nelze zpracovat pomocí metody System.Convert.

Typ .NET Vrácený řetězec
Logická hodnota "true", "false"
Single.PositiveInfinity "INF"
Single.NegativeInfinity "-INF"
Double.PositiveInfinity "INF"
Double.NegativeInfinity "-INF"
DateTime Formát je "yyyy-MM-ddTHH:mm:sszzzzzz" a jeho podmnožiny.
Časový interval Formát je PnYnMnTnHnMnS, P2Y10M15DT10H30M20S tj. doba trvání 2 let, 10 měsíců, 15 dní, 10 hodin, 30 minut a 20 sekund.

Poznámka:

Pokud převedete některý z typů .NET uvedených v tabulce na řetězec pomocí ToString metody, vrácený řetězec není základní typ, ale typ řetězce schématu XML (XSD).

Typ hodnoty DateTime a Timespan se liší v tom, že DateTime představuje okamžik v čase, zatímco TimeSpan představuje časový interval. Formáty DateTime a Timespan jsou zadány ve specifikaci datových typů schématu XML (XSD). Příklad:

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));  

Výstup

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

Následující kód převede celé číslo na řetězec:

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));  

Výstup

<Number>200</Number>

Pokud ale převádíte řetězec na logickou hodnotu, single nebo Double, vrácený typ .NET není stejný jako typ vrácený při použití třídy System.Convert.

Řetězec k logické hodnotě

Následující tabulka ukazuje, jaký typ je generován pro dané vstupní řetězce při převodu řetězce na boolean pomocí ToBoolean metoda.

Platný vstupní parametr řetězce Typ výstupu .NET
"true" Logická hodnota.True
"1" Logická hodnota.True
"false" Logická hodnota.False
"0" Logická hodnota.False

Například s následujícím kódem XML:

Vstup

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

Obojí lze pochopit následujícím kódem a bvalue je System.Boolean.True:

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

Řetězec do jednoho

Následující tabulka ukazuje, jaký typ je generován pro dané vstupní řetězce při převodu řetězce na single pomocí toSingle metoda.

Platný vstupní parametr řetězce Typ výstupu .NET
"INF" Single.PositiveInfinity
"-INF" Single.NegativeInfinity

Řetězec k dvojitému

Následující tabulka ukazuje, jaký typ je generován pro dané vstupní řetězce při převodu řetězce na Single pomocí ToDouble metoda.

Platný vstupní parametr řetězce Typ výstupu .NET
"INF" Double.PositiveInfinity
"-INF" Double.NegativeInfinity

Následující kód zapíše <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));  

Viz také