Konvertera strängar till .NET-datatyper
Om du vill konvertera en sträng till en .NET-datatyp använder du metoden XmlConvert som passar programkraven. En lista över alla konverteringsmetoder som är tillgängliga i klassen XmlConvertXmlConvert finns i .
Strängen som returneras från metoden ToString är en strängversion av de data som skickas in. Dessutom finns det flera .NET-typer som konverterar med klassen XmlConvert , men de använder inte metoderna i klassen System.Convert . Klassen XmlConvert följer specifikationen för XML-schemadatatyp (XSD) och har en datatyp som XmlConvert kan mappas till.
I följande tabell visas .NET-datatyper och de strängtyper som returneras med hjälp av xml-schemadatatypmappning (XSD). Dessa .NET-typer kan inte bearbetas med System.Convert.
.NET-typ | Sträng returnerad |
---|---|
Booleskt | "true", "false" |
Single.PositiveInfinity | "INF" |
Single.NegativeInfinity | "-INF" |
Double.PositiveInfinity | "INF" |
Double.NegativeInfinity | "-INF" |
Datum/tid | Formatet är "åååå-MM-ddTHH:mm:sszzzzzz" och dess delmängder. |
Tidsintervall | Formatet är PnYnMnTnHnMnS som P2Y10M15DT10H30M20S är en varaktighet på 2 år, 10 månader, 15 dagar, 10 timmar, 30 minuter och 20 sekunder. |
Kommentar
Om du konverterar någon av de .NET-typer som anges i tabellen till en sträng med metoden ToString är den returnerade strängen inte bastypen, utan strängtypen XML-schema (XSD).
Värdetypen DateTime och Timespan skiljer sig åt eftersom en DateTime representerar ett ögonblick i tiden, medan en TimeSpan representerar ett tidsintervall. Formaten DateTime och Timespan anges i specifikationen för XML-schemadatatyper (XSD). Till exempel:
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));
Output
<Date>2001-08-04T00:00:00</Date>
.
Följande kod konverterar ett heltal till en sträng:
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));
Output
<Number>200</Number>
Men om du konverterar en sträng till boolesk, enkel eller dubbel, är .NET-typen som returneras inte samma som den typ som returnerades när klassen System.Convert används.
Sträng till boolesk
I följande tabell visas vilken typ som genereras för de angivna indatasträngarna när du konverterar en sträng till boolesk med hjälp av metoden ToBoolean .
Giltig strängindataparameter | .NET-utdatatyp |
---|---|
"true" | Boolesk.True |
"1" | Boolesk.True |
"falskt" | Boolesk.False |
"0" | Boolesk.False |
Till exempel med följande XML:
Indata
<Boolean>true</Boolean>
<Boolean>1</Boolean>
Båda kan förstås av följande kod och bvalue är System.Boolean.True:
Dim bvalue As Boolean = _
XmlConvert.ToBoolean(reader.ReadElementString())
Console.WriteLine(bvalue)
Boolean bvalue = XmlConvert.ToBoolean(reader.ReadElementString());
Console.WriteLine(bvalue);
Sträng till enskild
I följande tabell visas vilken typ som genereras för de angivna indatasträngarna när du konverterar en sträng till en Enskild med metoden ToSingle .
Giltig strängindataparameter | .NET-utdatatyp |
---|---|
"INF" | Single.PositiveInfinity |
"-INF" | Single.NegativeInfinity |
Sträng till dubbel
I följande tabell visas vilken typ som genereras för de angivna indatasträngarna när du konverterar en sträng till en Enskild med metoden ToDouble .
Giltig strängindataparameter | .NET-utdatatyp |
---|---|
"INF" | Double.PositiveInfinity |
"-INF" | Double.NegativeInfinity |
Följande kod skriver <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));