Konvertieren von Zeichenfolgen in .NET-Datentypen
Wenn Sie eine Zeichenfolge in einen .NET-Datentyp konvertieren möchten, verwenden Sie die XmlConvert-Methode, die den Anwendungsanforderungen entspricht. Eine Liste sämtlicher in der XmlConvert-Klasse verfügbarer Konvertierungsmethoden finden Sie unter XmlConvert.
Die von der ToString-Methode zurückgegebene Zeichenfolge ist eine Zeichenfolgenversion der Daten, die übergeben werden. Darüber hinaus gibt es mehrere .NET-Typen, die mit der XmlConvert-Klasse konvertiert werden können, wobei sie jedoch nicht die Methoden in der System.Convert-Klasse verwenden. Die XmlConvert-Klasse entspricht der Spezifikation für XSD-Datentypen (XML-Schema) und besitzt einen Datentyp, dem XmlConvert zugeordnet werden kann.
Die folgende Tabelle enthält die .NET-Datentypen und die Zeichenfolgentypen, die unter Verwendung der XSD-Datentypzuordnung (XML Schema) zurückgegeben werden. Diese .NET-Typen können nicht mit System.Convert verarbeitet werden.
.NET-Typ | Zurückgegebene Zeichenfolge |
---|---|
Boolesch | "true", "false" |
Single.PositiveInfinity | "INF" |
Single.NegativeInfinity | "-INF" |
Double.PositiveInfinity | "INF" |
Double.NegativeInfinity | "-INF" |
DateTime | Das Format ist "jjjj-mm-ddTHH:mm:sszzzzzz" und die entsprechenden Unterteilungen. |
Timespan | Das Format lautet "PnYnMnTnHnMnS". Die bedeutet für P2Y10M15DT10H30M20S eine Dauer von 2 Jahren, 10 Monaten, 15 Tagen, 10 Stunden, 30 Minuten und 20 Sekunden. |
Hinweis
Wenn einer der in der Tabelle aufgeführten .NET-Typen mit der ToString-Methode in eine Zeichenfolge umgewandelt wird, ist die zurückgegebene Zeichenfolge nicht der Basistyp sondern der dem XML-Schema (XSD) entsprechende Zeichenfolgentyp.
Der DateTime-Werttyp und der Timespan-Werttyp unterscheiden sich voneinander in dem Punkt, dass DateTime einen Zeitpunkt darstellt, während TimeSpan einen Zeitraum angibt. Das DateTime- und das Timespan-Format werden in der Spezifikation für XSD-Datentypen (XML-Schema) festgelegt. Zum Beispiel:
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));
Ausgabe
<Date>2001-08-04T00:00:00</Date>
.
Der folgende Code konvertiert eine ganze Zahl in eine Zeichenfolge:
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));
Ausgabe
<Number>200</Number>
Wenn Sie jedoch eine Zeichenfolge in einen der Typen Boolean, Single oder Double konvertieren, stimmt der zurückgegebene .NET-Typ nicht mit dem bei Verwendung der System.Convert-Klasse zurückgegebenen Typ überein.
Zeichenfolge in Boolean
Die folgende Tabelle zeigt, welcher Typ für die angegebenen Eingabezeichenfolgen generiert wird, wenn eine Zeichenfolge mithilfe der ToBoolean-Methode in Boolean konvertiert wird.
Gültiger Eingabeparameter für die Zeichenfolge | .NET-Ausgabetyp |
---|---|
"true" | Boolean.True |
"1" | Boolean.True |
"false" | Boolean.False |
"0" | Boolean.False |
Betrachten Sie beispielsweise den folgenden XML-Code:
Eingabe
<Boolean>true</Boolean>
<Boolean>1</Boolean>
Beide können vom folgenden Code verarbeitet werden, und bvalue ist System.Boolean.True:
Dim bvalue As Boolean = _
XmlConvert.ToBoolean(reader.ReadElementString())
Console.WriteLine(bvalue)
Boolean bvalue = XmlConvert.ToBoolean(reader.ReadElementString());
Console.WriteLine(bvalue);
String in Single
Die folgende Tabelle zeigt, welcher Typ für die angegebenen Eingabezeichenfolgen generiert wird, wenn eine Zeichenfolge mithilfe der ToSingle-Methode in Single konvertiert wird.
Gültiger Eingabeparameter für die Zeichenfolge | .NET-Ausgabetyp |
---|---|
"INF" | Single.PositiveInfinity |
"-INF" | Single.NegativeInfinity |
String in Double
Die folgende Tabelle zeigt, welcher Typ für die angegebenen Eingabezeichenfolgen generiert wird, wenn eine Zeichenfolge mithilfe der ToDouble-Methode in Single konvertiert wird.
Gültiger Eingabeparameter für die Zeichenfolge | .NET-Ausgabetyp |
---|---|
"INF" | Double.PositiveInfinity |
"-INF" | Double.NegativeInfinity |
Der folgende Code schreibt <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));