Partager via


Convertir des chaînes en types de données .NET

Si vous souhaitez convertir une chaîne en un type de données .NET, utilisez la méthode XmlConvert conforme aux exigences de l’application. Pour une liste de toutes les méthodes de conversion disponibles dans la classe XmlConvert, consultez XmlConvert.

La chaîne retournée par la méthode ToString est une version de la chaîne des données qui lui sont passées. De plus, il existe plusieurs types .NET qui sont convertis à l’aide de la classe XmlConvert bien qu’ils n’utilisent pas les méthodes de la classe System.Convert. La classe XmlConvert est conforme à la spécification des types de données XSD (XML Schema Definition) et possède un type de données auquel XmlConvert peut être mappé.

Le tableau suivant répertorie les types de données .NET et les types de chaînes retournés à l’aide du mappage de types de données XSD (XML Schema Definition). Ces types .NET ne peuvent pas être traités à l’aide de System.Convert.

Type .NET Chaîne retournée
Boolean "true", "false"
Single.PositiveInfinity "INF"
Single.NegativeInfinity "-INF"
Double.PositiveInfinity "INF"
Double.NegativeInfinity "-INF"
DateTime Le format est « yyyy-MM-ddTHH:mm:sszzzzzz » et ses sous-ensembles.
Timespan Le format est PnYnMnTnHnMnS, c'est-à-dire que P2Y10M15DT10H30M20S indique une durée de 2 années, 10 mois, 15 jours, 10 heures, 30 minutes et 20 secondes.

Notes

Durant la conversion de l’un des types .NET répertoriés dans ce tableau vers une chaîne à l’aide de la méthode ToString, la chaîne retournée n’est pas le type de base, mais le type de chaîne XSD (XML Schema Definition).

Le type des valeurs DateTime et Timespan diffère en ce sens que DateTime représente un moment donné dans le temps, alors que TimeSpan représente un intervalle de temps. Les formats DateTime et Timespan sont spécifiés dans la spécification des types de données XSD (XML Schema Definition). Par exemple :

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

Sortie

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

Le code suivant convertit un entier en chaîne :

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

Sortie

<Number>200</Number>

Si toutefois vous convertissez une chaîne en type Boolean, Single ou Double, le type .NET retourné n’est pas le même que le type retourné avec la classe System.Convert.

String vers Boolean

Le tableau suivant indique le type généré pour une chaîne d'entrée donnée durant la conversion d'une chaîne en type Boolean à l'aide de la méthode ToBoolean.

Paramètre d'entrée de chaîne valide Type de sortie .NET
"true" Boolean.True
"1" Boolean.True
"false" Boolean.False
"0" Boolean.False

Examinons, par exemple, le code XML suivant :

Input

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

Tous deux peuvent être reconnus par le code suivant, et bvalue est System.Boolean.True :

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

String vers Single

Le tableau suivant indique le type généré pour une chaîne d'entrée donnée durant la conversion d'une chaîne en type Single à l'aide de la méthode ToSingle.

Paramètre d'entrée de chaîne valide Type de sortie .NET
"INF" Single.PositiveInfinity
"-INF" Single.NegativeInfinity

String vers Double

Le tableau suivant indique le type généré pour une chaîne d'entrée donnée durant la conversion d'une chaîne en type Single à l'aide de la méthode ToDouble.

Paramètre d'entrée de chaîne valide Type de sortie .NET
"INF" Double.PositiveInfinity
"-INF" Double.NegativeInfinity

Le code suivant écrit <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));  

Voir aussi