System.Convert.ChangeType 方法 (Object, TypeCode)

方法描述

返回一个指定类型的对象,该对象的值等于指定的对象。

语法定义(C# System.Convert.ChangeType 方法 (Object, TypeCode) 的用法)

public static Object ChangeType(
	Object value,
	TypeCode typeCode
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
value System-Object 用于实现 IConvertible 接口的对象。
typeCode System-TypeCode 要返回的对象的类型。
返回值 System.Object 一个基础类型为 typeCode 的对象,其值等效于 value。 - 或 - 如果 value 是 null,且 typeCode 是 Empty、String 或 Object,则为 null 引用(Visual Basic 中为 Nothing)。

提示和注释

ChangeType(Object, TypeCode) 是将 value 指定的对象转换为 typeCode 指定的预定义类型的通用转换方法。 value 参数可以是任何类型的对象。 要使转换成功,value 必须实现 IConvertible 接口,因为此方法只是包装对相应 IConvertible 方法的调用。 此方法还要求将 value 转换为 typeCode 受支持。

ChangeType(Object, TypeCode) 方法不支持将 value 转换为自定义类型。 要执行这样的转换,请调用 ChangeType(Object, Type) 方法。

System.Convert.ChangeType 方法 (Object, TypeCode)例子

下面的示例阐释如何使用 ChangeType(Object, TypeCode) 方法将 Object 更改为 TypeCode 参数指定的类型(如果可能)。

using System;

public class ChangeTypeTest {
    public static void Main() {

        Double d = -2.345;
        int i = (int)Convert.ChangeType(d, TypeCode.Int32);

        Console.WriteLine("The Double {0} when converted to an Int32 is {1}", d, i);

        string s = "12/12/2009";
        DateTime dt = (DateTime)Convert.ChangeType(s, typeof(DateTime));

        Console.WriteLine("The String {0} when converted to a Date is {1}", s, dt);        
    }
}
// The example displays the following output:
//    The Double -2.345 when converted to an Int32 is -2
//    The String 12/12/2009 when converted to a Date is 12/12/2009 12:00:00 AM

异常

异常 异常描述
InvalidCastException
  • 不支持此转换。
  • value 为 null,而且 typeCode 指定一个值类型。
  • value 不实现 IConvertible 接口。
FormatException value 未采用 typeCode 类型可以识别的格式。
OverflowException value 表示超出 typeCode 类型范围的数字。
ArgumentException typeCode 无效。

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。