Udostępnij za pośrednictwem


Konwertowanie ciągów na typy danych platformy .NET

Jeśli chcesz przekonwertować ciąg na typ danych platformy .NET, użyj metody XmlConvert , która spełnia wymagania aplikacji. Aby uzyskać listę wszystkich metod konwersji dostępnych w klasie XmlConvert , zobacz XmlConvert.

Ciąg zwrócony z metody ToString jest wersją ciągu danych przekazywanych. Ponadto istnieje kilka typów platformy .NET, które konwertują przy użyciu klasy XmlConvert , ale nie używają metod w klasie System.Convert . Klasa XmlConvert jest zgodna ze specyfikacją typu danych schematu XML (XSD) i ma typ danych, do którego może mapować plik XmlConvert.

W poniższej tabeli wymieniono typy danych platformy .NET oraz typy ciągów zwracane przy użyciu mapowania typu danych schematu XML (XSD). Tych typów platformy .NET nie można przetworzyć przy użyciu metody System.Convert.

Typ platformy .NET Zwrócony ciąg
Wartość logiczna "true", "false"
Single.PositiveInfinity "INF"
Single.NegativeInfinity "-INF"
Double.positiveinfinity "INF"
Double.negativeinfinity "-INF"
DateTime Format to "yyyy-MM-ddTHH:mm:sszzzzzz" i jego podzestawy.
Zakres czasu Format to PnYnMnTnHnMnS, P2Y10M15DT10H30M20S czyli czas trwania 2 lat, 10 miesięcy, 15 dni, 10 godzin, 30 minut i 20 sekund.

Uwaga

W przypadku konwertowania któregokolwiek z typów platformy .NET wymienionych w tabeli na ciąg przy użyciu metody ToString zwracany ciąg nie jest typem podstawowym, ale typem ciągu schematu XML (XSD).

Typ wartości DateTime i Timespan różni się w tym, że wartość DateTime reprezentuje moment w czasie, natomiast przedział czasu reprezentuje przedział czasu. Formaty DateTime i Timespan są określone w specyfikacji typów danych schematu XML (XSD). Na przykład:

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

Wyjście

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

Poniższy kod konwertuje liczbę całkowitą na ciąg:

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

Wyjście

<Number>200</Number>

Jeśli jednak konwertujesz ciąg na wartość logiczną, pojedynczą lub podwójną, zwracany typ platformy .NET nie jest taki sam jak typ zwracany podczas korzystania z klasy System.Convert .

Ciąg do wartości logicznej

W poniższej tabeli przedstawiono typ generowany dla danych ciągów wejściowych podczas konwertowania ciągu na wartość logiczną przy użyciu metody ToBoolean .

Prawidłowy parametr wejściowy ciągu Typ danych wyjściowych platformy .NET
„prawda” Wartość logiczna.True
"1" Wartość logiczna.True
„false” Wartość logiczna.False
„0” Wartość logiczna.False

Na przykład, biorąc pod uwagę następujący kod XML:

Dane wejściowe

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

Oba te elementy można zrozumieć za pomocą następującego kodu, a wartość bvalue to System.Boolean.True:

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

Ciąg do pojedynczego

W poniższej tabeli przedstawiono typ generowany dla danych ciągów wejściowych podczas konwertowania ciągu na pojedynczy przy użyciu metody ToSingle.

Prawidłowy parametr wejściowy ciągu Typ danych wyjściowych platformy .NET
"INF" Single.PositiveInfinity
"-INF" Single.NegativeInfinity

Ciąg do podwójnej

W poniższej tabeli przedstawiono typ generowany dla danych ciągów wejściowych podczas konwertowania ciągu na pojedynczy przy użyciu metody ToDouble.

Prawidłowy parametr wejściowy ciągu Typ danych wyjściowych platformy .NET
"INF" Double.positiveinfinity
"-INF" Double.negativeinfinity

Poniższy kod pisze <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));  

Zobacz też