Aracılığıyla paylaş


Dizeleri .NET veri türlerine dönüştürme

Bir dizeyi .NET veri türüne dönüştürmek istiyorsanız, uygulama gereksinimlerine uyan XmlConvert yöntemini kullanın. XmlConvert sınıfında kullanılabilen tüm dönüştürme yöntemlerinin listesi için bkzXmlConvert. .

ToString yönteminden döndürülen dize, geçirilen verilerin dize sürümüdür. Ayrıca, XmlConvert sınıfını kullanarak dönüştüren birkaç .NET türü vardır, ancak System.Convert sınıfındaki yöntemleri kullanmaz. XmlConvert sınıfı XML Şeması (XSD) veri türü belirtimini izler ve XmlConvert'in eşlenebileceği bir veri türüne sahiptir.

Aşağıdaki tabloda .NET veri türleri ve XML Şeması (XSD) veri türü eşlemesi kullanılarak döndürülen dize türleri listelenmiştir. Bu .NET türleri System.Convert kullanılarak işlenemez.

.NET türü Dize döndürüldü
Boolean "true", "false"
Positiveınfinity "INF"
Single.NegativeInfinity "-INF"
Positiveınfinity "INF"
Negativeınfinity "-INF"
DateTime Biçim: "yyyy-MM-ddTHH:mm:sszzzzz" ve alt kümeleri.
Timespan Biçim PnYnMnTnHnMnS'dir P2Y10M15DT10H30M20S . Bu süre 2 yıl, 10 ay, 15 gün, 10 saat, 30 dakika ve 20 saniyedir.

Not

Tabloda listelenen .NET türlerinden herhangi biri ToString yöntemini kullanarak bir dizeye dönüştürülüyorsa, döndürülen dize temel tür değil, XML Şeması (XSD) dize türüdür.

DateTime ve Timespan değer türü, DateTime'ın bir anlık zamanı temsil ettiği, TimeSpan ise zaman aralığını temsil ettiği için farklılık gösterir. DateTime ve Timespan biçimleri XML Şeması (XSD) veri türleri belirtiminde belirtilir. Örneğin:

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

Çıktı

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

Aşağıdaki kod bir tamsayıyı dizeye dönüştürür:

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

Çıktı

<Number>200</Number>

Ancak, bir dizeyi Boole, Single veya Double'a dönüştürüyorsanız, döndürülen .NET türü System.Convert sınıfı kullanılırken döndürülen türle aynı değildir.

Boole dizesi

Aşağıdaki tabloda, ToBoolean yöntemi kullanılarak bir dize Boole'a dönüştürülürken verilen giriş dizeleri için hangi türün oluşturulduğu gösterilmektedir.

Geçerli dize giriş parametresi .NET çıkış türü
"true" Boole.True
"1" Boole.True
"false" Boole.False
"0" Boole.False

Örneğin, aşağıdaki XML'yi göz önünde bulundurarak:

Girdi

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

Her ikisi de aşağıdaki kodla anlaşılabilir ve bvalue, System.Boolean.True şeklindedir:

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

Dizeden Teke

Aşağıdaki tabloda, ToSingle yöntemi kullanılarak bir dize Tek'e dönüştürülürken verilen giriş dizeleri için hangi türün oluşturulduğu gösterilmektedir.

Geçerli dize giriş parametresi .NET çıkış türü
"INF" Positiveınfinity
"-INF" Single.NegativeInfinity

Dizeden Çifte

Aşağıdaki tabloda, ToDouble yöntemi kullanılarak bir dize Tek'e dönüştürülürken verilen giriş dizeleri için hangi türün oluşturulduğu gösterilmektedir.

Geçerli dize giriş parametresi .NET çıkış türü
"INF" Positiveınfinity
"-INF" Negativeınfinity

Aşağıdaki kod şunu <Infinity>INF</Infinity>yazar:

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

Ayrıca bkz.