Tekenreeksen converteren naar .NET-gegevenstypen
Als u een tekenreeks wilt converteren naar een .NET-gegevenstype, gebruikt u de XmlConvert-methode die voldoet aan de toepassingsvereisten. Zie voor een lijst met alle conversiemethoden die beschikbaar zijn in de klasse XmlConvertXmlConvert.
De tekenreeks die wordt geretourneerd door de Methode ToString is een tekenreeksversie van de gegevens die worden doorgegeven. Daarnaast zijn er verschillende .NET-typen die converteren met behulp van de XmlConvert-klasse , maar ze gebruiken de methoden niet in de klasse System.Convert . De XmlConvert-klasse volgt de specificatie van het XML-schema (XSD)-gegevenstype en heeft een gegevenstype waaraan de XmlConvert kan worden toegewezen.
De volgende tabel bevat .NET-gegevenstypen en de tekenreekstypen die worden geretourneerd met behulp van de toewijzing van xml-schemagegevenstypen (XSD). Deze .NET-typen kunnen niet worden verwerkt met System.Convert.
.NET-type | Tekenreeks geretourneerd |
---|---|
Booleaanse waarde | "true", "false" |
Single.PositiveInfinity | "INF" |
Single.NegativeInfinity | "-INF" |
Double.PositiveInfinity | "INF" |
Double.NegativeInfinity | "-INF" |
Datum en tijd | De notatie is 'jjjj-MM-ddTHH:mm:sszzzzzz' en de bijbehorende subsets. |
Periode | Indeling is PnYnMnTnHnMnS, dat wil gezegd, P2Y10M15DT10H30M20S is een duur van 2 jaar, 10 maanden, 15 dagen, 10 uur, 30 minuten en 20 seconden. |
Notitie
Als u een van de in de tabel vermelde .NET-typen converteert naar een tekenreeks met de methode ToString , is de geretourneerde tekenreeks niet het basistype, maar het XSD-tekenreekstype (XML-schema).
Het waardetype DateTime en Timespan verschillen in dat een datum/tijd een moment in tijd vertegenwoordigt, terwijl een tijdsinterval een tijdsinterval vertegenwoordigt. De datum/tijd - en tijdspanindelingen worden opgegeven in de specificatie van het XML-schema (XSD). Voorbeeld:
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));
Uitvoer
<Date>2001-08-04T00:00:00</Date>
.
Met de volgende code wordt een geheel getal geconverteerd naar een tekenreeks:
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));
Uitvoer
<Number>200</Number>
Als u echter een tekenreeks converteert naar Booleaanse waarde, Single of Double, is het geretourneerde .NET-type niet hetzelfde als het type dat wordt geretourneerd bij het gebruik van de klasse System.Convert.
Tekenreeks naar Booleaanse waarde
In de volgende tabel ziet u welk type wordt gegenereerd voor de opgegeven invoertekenreeksen, wanneer u een tekenreeks converteert naar Booleaanse waarde met behulp van de methode ToBoolean.
Geldige tekenreeksinvoerparameter | .NET-uitvoertype |
---|---|
"true" | Booleaanse waarde.True |
"1" | Booleaanse waarde.True |
"onwaar" | Booleaanse waarde.False |
"0" | Booleaanse waarde.False |
Bijvoorbeeld, op basis van de volgende XML:
Invoer
<Boolean>true</Boolean>
<Boolean>1</Boolean>
Beide kunnen worden begrepen door de volgende code en bvalue is System.Boolean.True:
Dim bvalue As Boolean = _
XmlConvert.ToBoolean(reader.ReadElementString())
Console.WriteLine(bvalue)
Boolean bvalue = XmlConvert.ToBoolean(reader.ReadElementString());
Console.WriteLine(bvalue);
Tekenreeks naar één
In de volgende tabel ziet u welk type wordt gegenereerd voor de opgegeven invoertekenreeksen, wanneer u een tekenreeks converteert naar één met behulp van de methode ToSingle.
Geldige tekenreeksinvoerparameter | .NET-uitvoertype |
---|---|
"INF" | Single.PositiveInfinity |
"-INF" | Single.NegativeInfinity |
Tekenreeks naar dubbel
In de volgende tabel ziet u welk type wordt gegenereerd voor de opgegeven invoertekenreeksen, wanneer u een tekenreeks converteert naar één met behulp van de methode ToDouble.
Geldige tekenreeksinvoerparameter | .NET-uitvoertype |
---|---|
"INF" | Double.PositiveInfinity |
"-INF" | Double.NegativeInfinity |
De volgende code schrijft <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));