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

定義

指定した Object の型を指定した Typeに変更します。

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

パラメーター

value
Object

新しい Typeに変更するオブジェクト。

type
Type

Typeになる新しいvalue

culture
CultureInfo

データ型の強制型の制御に使用される CultureInfo のインスタンス。 culturenullされている場合は、現在のスレッドのCultureInfoが使用されます。

返品

指定した値を新しい型として格納するオブジェクト。

注釈

リフレクションは、共通型システムのアクセシビリティ ルールをモデル化します。 たとえば、呼び出し元が同じアセンブリ内にある場合、呼び出し元は内部メンバーに対する特別なアクセス許可を必要としません。 それ以外の場合、呼び出し元には ReflectionPermissionが必要です。 これは、保護されているメンバー、プライベートメンバーなどの参照と一致します。

一般的な原則は、 ChangeType は、データを失わない拡大強制型変換のみを実行する必要があるということです。 拡大強制型変換の例として、32 ビット符号付き整数である値を 64 ビット符号付き整数の値に強制変換します。 これは、データが失われる可能性がある縮小強制とは区別されます。 縮小強制の例として、64 ビット符号付き整数を 32 ビット符号付き整数に強制変換します。

次の表に、既定の ChangeTypeによって実行される強制型指定の一覧を示します。

ソースの種類 ターゲットの種類
任意の型 その基本型。
任意の型 実装するインターフェイス。
Char UInt16、UInt32、Int32、UInt64、Int64、Single、Double
Byte Char、UInt16、Int16、UInt32、Int32、UInt64、Int64、Single、Double
SByte Int16、Int32、Int64、Single、Double
UInt16 UInt32、Int32、UInt64、Int64、Single、Double
Int16 Int32、Int64、Single、Double
UInt32 UInt64、Int64、Single、Double
Int32 Int64、Single、Double
UInt64 シングル、ダブル
Int64 シングル、ダブル
Double
非参照 参照による。

バインダーの実装で文字列値を数値型に強制変換できる場合、1000 を表す文字列をculture値に変換するには、Double パラメーターが必要です。1000 はカルチャによって異なる方法で表されるためです。 既定のバインダーでは、このような文字列強制型変換は行われません。

適用対象