将字符串转换为 .NET 数据类型
若要将字符串转换为 .NET 数据类型,请使用满足应用程序要求的 XmlConvert 方法。 有关 XmlConvert 类提供的所有转换方法的列表,请参阅 XmlConvert。
从 ToString 方法返回的字符串是传入数据的字符串版本。 此外,还有若干 .NET 类型仍使用 XmlConvert 类进行转换,但它们不使用 System.Convert 类中的方法 。 XmlConvert 类遵循 XML 架构 (XSD) 数据类型规范,并有 XMLConvert 可以映射到的数据类型。
下表列出了 .NET 数据类型和使用 XML 架构 (XSD) 数据类型映射返回的字符串类型。 不能使用 System.Convert 处理这些 .NET 类型。
.NET 类型 | 返回的字符串 |
---|---|
Boolean | “true”、“false” |
Single.PositiveInfinity | “INF” |
Single.NegativeInfinity | “-INF” |
Double.PositiveInfinity | “INF” |
Double.NegativeInfinity | “-INF” |
DateTime | 格式为“yyyy-MM-ddTHH:mm:sszzzzzz”及其子集。 |
Timespan | 格式是 PnYnMnTnHnMnS,例如 P2Y10M15DT10H30M20S 表示长 2 年 10 个月 15 天 10 小时 30 分钟 20 秒的持续时间。 |
注意
如果使用 ToString 方法将表中所列的任何 .NET 类型转换为字符串,返回的字符串不是基类型,而是 XML 架构 (XSD) 字符串类型。
DateTime 和 Timespan 值类型的区别在于,DateTime 表示时间上的某个时刻,而 TimeSpan 则表示时间间隔。 XML 架构 (XSD) 数据类型规范中指定了 DateTime 和 Timespan 格式。 例如:
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));
输出
<Date>2001-08-04T00:00:00</Date>
。
下面的代码将整数转换为字符串:
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));
输出
<Number>200</Number>
不过,如果将字符串转换为 Boolean、Single 或 Double,返回的 .NET 类型与使用 System.Convert 类返回的类型不同 。
将字符串转换为 Boolean
下表列出了使用 ToBoolean 方法将字符串转换为 Boolean 时,针对给定输入字符串生成的类型。
有效的字符串输入参数 | .NET 输出类型 |
---|---|
“true” | Boolean.True |
"1" | Boolean.True |
“false” | Boolean.False |
“0” | Boolean.False |
例如,给定以下 XML:
输入
<Boolean>true</Boolean>
<Boolean>1</Boolean>
两者均可通过下列代码理解,其中 bvalue 为 System.Boolean.True :
Dim bvalue As Boolean = _
XmlConvert.ToBoolean(reader.ReadElementString())
Console.WriteLine(bvalue)
Boolean bvalue = XmlConvert.ToBoolean(reader.ReadElementString());
Console.WriteLine(bvalue);
将字符串转换为 Single
下表列出了使用 ToSingle 方法将字符串转换为 Single 时,针对给定输入字符串生成的类型。
有效的字符串输入参数 | .NET 输出类型 |
---|---|
“INF” | Single.PositiveInfinity |
“-INF” | Single.NegativeInfinity |
将字符串转换为 Double
下表列出了使用 ToDouble 方法将字符串转换为 Single 时,针对给定输入字符串生成的类型。
有效的字符串输入参数 | .NET 输出类型 |
---|---|
“INF” | Double.PositiveInfinity |
“-INF” | Double.NegativeInfinity |
下面的代码写出 <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));