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