Binder.ChangeType(Object, Type, CultureInfo) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將指定的 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 執行個體。 如果 culture
為 null
,會使用目前執行緒的 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。 預設的繫結器不會處理這種字串強制型轉。