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。 預設的繫結器不會處理這種字串強制型轉。