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