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

將會成為新的Typevalue那個。

culture
CultureInfo

其中一種實例 CultureInfo 用來控制資料型別的強制使用。 若 culturenullCultureInfo則使用 當前執行緒。

傳回

一個包含該值作為新型別的物件。

備註

反射模擬了共通型別系統的可及性規則。 例如,若呼叫者在同一個集合體中,呼叫者不需要對內部成員有特殊權限。 否則,呼叫者需要 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 單人、雙人
Single Double
非參考書 參考。

如果綁定器實作允許將字串值強制轉換為數值型別, culture 則該參數是將代表 1000 的字串轉換為 Double 值的必要條件,因為 1000 在不同文化中有不同的表示方式。 預設的綁定器不會做這種字串強制。

適用於