Conversione delle stringhe in tipi di dati di .NET Framework

Per convertire una stringa in un tipo di dati di .NET Framework, utilizzare il metodo XmlConvert che soddisfa i requisiti dell'applicazione. Per un elenco di tutti i metodi di conversione disponibili nella classe XmlConvert, vedere Membri XmlConvert.

La stringa restituita dal metodo ToString è una versione in formato stringa dei dati passati. Esistono inoltre diversi tipi .NET Framework che consentono di eseguire la conversione utilizzando la classe XmlConvert, ma che non consentono l'utilizzo dei metodi della classe System.Convert. La classe XmlConvert segue la specifica dei tipi di dati Schema XML (XSD) e possiede un tipo di dati su cui è possibile eseguire il mapping di XmlConvert.

Nella tabella seguente sono elencati i tipi di dati di .NET Framework e i tipi di stringa che vengono restituiti dal mapping dei tipi di dati dello Schema XML (XSD). I tipi di .NET Framework non possono essere elaborati con System.Convert.

Tipo .NET Framework Stringa restituita
Boolean "true", "false"
Single.PositiveInfinity "INF"
Single.NegativeInfinity "-INF"
Double.PositiveInfinity "INF"
Double.NegativeInfinity "-INF"
DateTime Il formato è "aaaa-MM-ggTHH:mm:ss"
vale a dire, 2001-08-04T02:20:00
l'anno è 2001, il mese è agosto, il giorno è il 4 e l'ora corrisponde alle due del mattino, 20 minuti e zero secondi.
TimeSpan Il formato è PnYnMnTnHnMnS
vale a dire, P2Y10M15DT10H30M20S corrisponde a una durata di 2 anni, 10 mesi, 15 giorni, 10 ore, 30 minuti e 20 secondi.

Nota  Se viene eseguita la conversione di uno dei tipi di .NET Framework elencati nella tabella in una stringa, utilizzando il metodo ToString, la stringa restituita non corrisponderà al tipo di base, ma al tipo di stringa dello Schema XML (XSD).

Il tipo di valore DateTime e Timespan è diverso in quanto DateTime rappresenta un istante nel tempo, mentre TimeSpan rappresenta un intervallo di tempo. I formati DateTime e Timespan sono specificati nella specifica dei tipi di dati dello Schema XML (XSD). Ad esempio:

Dim writer As New XmlTextWriter("myfile.xml", Nothing)
Dim [date] As New DateTime(2001, 8, 4)
writer.WriteElementString("Date", XmlConvert.ToString([date]))
[C#]
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>.

Il numero viene convertito dal codice seguente in una stringa:

Dim writer As New XmlTextWriter("myfile.xml", Nothing)
Dim value As Int32 = 200
writer.WriteElementString("Number", XmlConvert.ToString(value))
[C#]
XmlTextWriter writer = new XmlTextWriter("myfile.xml", null);
Int32 value = 200;
writer.WriteElementString("Number", XmlConvert.ToString(value));

Output

<Number>200</Number>

Tuttavia, se si converte una stringa in Boolean, Single o Double, il tipo di .NET Framework restituito non corrisponde al tipo restituito quando si utilizza la classe System.Convert.

Stringa in Boolean

Nella tabella seguente viene illustrato quale tipo viene generato per le stringhe di input fornite, quando si converte una stringa in Boolean utilizzando il metodo ToBoolean.

Parametro di input della stringa valido Tipo di output di .NET Framework
"true" Boolean.True
"1" Boolean.True
"false" Boolean.False
"0" Boolean.False

Considerato, ad esempio, l'XML seguente:

Input

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

Entrambi possono essere interpretati correttamente dal codice seguente e bvalue corrisponde a System.Boolean.True:

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

Stringa in Single

Nella tabella seguente viene illustrato quale tipo viene generato per le stringhe di input fornite, quando si converte una stringa in Single utilizzando il metodo ToSingle.

Parametro di input della stringa valido Tipo di output di .NET Framework
"INF" Single.PositiveInfinity
"-INF" Single.NegativeInfinity

Stringa in Double

Nella tabella seguente viene illustrato quale tipo viene generato per le stringhe di input fornite, quando si converte una stringa in Single utilizzando il metodo ToDouble.

Parametro di input della stringa valido Tipo di output di .NET Framework
"INF" Double.PositiveInfinity
"-INF" Double.NegativeInfinity

Il codice seguente scrive <Infinity>INF</Infinity>:

Dim value As Double = Double.PositiveInfinity
writer.WriteElementString("Infinity", XmlConvert.ToString(value))
[C#]
Double value = Double.PositiveInfinity;
writer.WriteElementString("Infinity", XmlConvert.ToString(value));

Vedere anche

Conversione dei tipi di dati XML | Conversione dei tipi di .NET Framework in stringhe