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
將會成為新的Typevalue那個。
- culture
- CultureInfo
其中一種實例 CultureInfo 用來控制資料型別的強制使用。 若 culture ,nullCultureInfo則使用 當前執行緒。
傳回
一個包含該值作為新型別的物件。
備註
反射模擬了共通型別系統的可及性規則。 例如,若呼叫者在同一個集合體中,呼叫者不需要對內部成員有特殊權限。 否則,呼叫者需要 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 在不同文化中有不同的表示方式。 預設的綁定器不會做這種字串強制。