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

value 將要變成的新 Type

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 Single、Double
Int64 Single、Double
Single Double
非參考 參考。

如果系結器實作允許將字串值強制轉換成數數值型別, culture 則必須將代表 1000 的 Double 字串轉換成值,因為不同文化特性以不同的方式表示 1000。 預設的繫結器不會處理這種字串強制型轉。

適用於