Binder.ChangeType(Object, Type, CultureInfo) メソッド


指定されている Object を特定の Type に変更します。Changes the type of the given Object to the given Type.

 abstract System::Object ^ ChangeType(System::Object ^ value, Type ^ type, System::Globalization::CultureInfo ^ culture);
public abstract object ChangeType (object value, Type type, System.Globalization.CultureInfo culture);
abstract member ChangeType : obj * Type * System.Globalization.CultureInfo -> obj
Public MustOverride Function ChangeType (value As Object, type As Type, culture As CultureInfo) As Object



新しい Type に変更するオブジェクト。The object to change into a new Type.


value の変換後の新しい型。TypeThe new Type that value will become.


データ型の強制変換を制御するために使用する CultureInfo のインスタンス。An instance of CultureInfo that is used to control the coercion of data types. culturenull の場合は、現在のスレッドの CultureInfo が使用されます。If culture is null, the CultureInfo for the current thread is used.



指定されている値を新しい型で保持しているオブジェクト。An object that contains the given value as the new type.


リフレクションは、共通型システムのアクセシビリティ規則をモデル化します。Reflection models the accessibility rules of the common type system. たとえば、呼び出し元が同じアセンブリ内にある場合、呼び出し元は内部メンバーに対して特別なアクセス許可を必要としません。For example, if the caller is in the same assembly, the caller does not need special permissions for internal members. それ以外の場合は、呼び出し元に ReflectionPermissionが必要です。Otherwise, the caller needs ReflectionPermission. これは、protected、private などのメンバーの参照と一致します。This is consistent with lookup of members that are protected, private, and so on.

一般的な原則として、ChangeType では、データを失うことのない拡大変換のみを実行する必要があります。The general principle is that ChangeType should perform only widening coercions, which never lose data. 拡大型変換の例として、32ビット符号付き整数の値を64ビット符号付き整数値に強制型変換ます。An example of a widening coercion is coercing a value that is a 32-bit signed integer to a value that is a 64-bit signed integer. これは、データを失う可能性がある縮小変換とは区別されます。This is distinguished from a narrowing coercion, which may lose data. 縮小変換の例としては、64ビット符号付き整数から32ビット符号付き整数への強制型変換があります。An example of a narrowing coercion is coercing a 64-bit signed integer to a 32-bit signed integer.

既定の ChangeTypeによって実行される強制変換の一覧を次の表に示します。The following table lists the coercions performed by the default ChangeType.

ソースの種類Source type ターゲットの種類Target type
任意の型Any type その基本型。Its base type.
任意の型Any type 実装するインターフェイス。The interface it implements.
CharChar UInt16、UInt32、Int32、UInt64、Int64、Single、DoubleUInt16, UInt32, Int32, UInt64, Int64, Single, Double
ByteByte Char、UInt16、Int16、UInt32、Int32、UInt64、Int64、Single、DoubleChar, UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double
SByteSByte Int16、Int32、Int64、Single、DoubleInt16, Int32, Int64, Single, Double
UInt16UInt16 UInt32、Int32、UInt64、Int64、Single、DoubleUInt32, Int32, UInt64, Int64, Single, Double
Int16Int16 Int32、Int64、Single、DoubleInt32, Int64, Single, Double
UInt32UInt32 UInt64、Int64、Single、DoubleUInt64, Int64, Single, Double
Int32Int32 Int64、Single、DoubleInt64, Single, Double
UInt64UInt64 Single、DoubleSingle, Double
Int64Int64 Single、DoubleSingle, Double
SingleSingle DoubleDouble
非参照Non-reference 参照渡し。By-reference.

バインダーの実装で文字列値を数値型に強制変換できる場合、culture パラメーターは1000を表す文字列を Double 値に変換する必要があります。これは、カルチャによって1000の表記が異なるためです。If a binder implementation allows coercion of string values to numeric types, the culture parameter is necessary to convert a string that represents 1000 to a Double value, because 1000 is represented differently by different cultures. 既定のバインダーは、このような文字列の強制変換を行いません。The default binder does not do such string coercions.