将字符串转换为 .NET Framework 数据类型

更新:November 2007

如果要将字符串转换为 .NET Framework 数据类型,请使用符合应用程序要求的 XmlConvert 方法。 有关 XmlConvert 类中可用的所有转换方法的列表,请参见 XmlConvert 成员

ToString 方法返回的字符串是传入数据的字符串版本。此外,还有若干 .NET Framework 类型仍使用 XmlConvert 类进行转换,但它们不使用 System.Convert 类中的方法。 XmlConvert 类遵循 XML 架构 (XSD) 数据类型规范,并具有一个 XMLConvert 可以映射到的数据类型。

下表列出了 .NET Framework 数据类型和使用 XML 架构 (XSD) 数据类型映射返回的字符串类型。 这些 .NET Framework 类型不能用 System.Convert 处理。

.NET Framework 类型

返回的字符串

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 Framework 类型转换为字符串,则返回的字符串不是基类型,而是 XML 架构 (XSD) 字符串类型。

DateTimeTimespan 值类型的不同之处在于:DateTime 表示时间上的某个时刻,而 TimeSpan 表示时间间隔。 XML 架构 (XSD) 数据类型规范中指定了 DateTimeTimespan 的格式。 例如:

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>

但是,如果将字符串转换为 BooleanSingleDouble,则返回的 .NET Framework 类型与使用 System.Convert 类时返回的类型不同。

将字符串转换为 Boolean

下表显示使用 ToBoolean 方法将字符串转换为 Boolean 时,为给定的输入字符串生成的类型。

有效的字符串输入参数

.NET Framework 输出类型

“true”

Boolean.True

"1"

Boolean.True

“false”

Boolean.False

"0"

Boolean.False

例如,给定以下 XML:

输入

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

两者均可由下列代码识别,并且 bvalueSystem.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 Framework 输出类型

“INF”

Single.PositiveInfinity

“-INF”

Single.NegativeInfinity

将字符串转换为 Double

下表显示使用 ToDouble 方法将字符串转换为 Double 时,为给定的输入字符串生成的类型。

有效的字符串输入参数

.NET Framework 输出类型

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

请参见

概念

XML 数据类型的转换

将 .NET Framework 类型转换为字符串