Binder.ChangeType(Object, Type, CultureInfo) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Modifica il tipo di Object
specificato nel Type
specificato.
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
Parametri
- value
- Object
Oggetto da modificare in un nuovo Type
.
- type
- Type
Nuovo Type
assegnato a value
.
- culture
- CultureInfo
Istanza dell'oggetto CultureInfo utilizzata per controllare l'assegnazione forzata dei tipi di dati. Se culture
è null
, per il thread corrente verrà usato l'oggetto CultureInfo.
Restituisce
Oggetto che contiene il valore dato come nuovo tipo.
Commenti
La reflection modella le regole di accessibilità del sistema di tipi comuni. Ad esempio, se il chiamante si trova nello stesso assembly, il chiamante non richiede autorizzazioni speciali per i membri interni. In caso contrario, il chiamante necessita ReflectionPermissiondi . Ciò è coerente con la ricerca di membri protetti, privati e così via.
Il principio generale è che ChangeType
deve eseguire solo coercioni ampliati, che non perderanno mai dati. Un esempio di coercizione di estensione consiste nel coercing di un valore con segno a 32 bit su un valore intero con segno a 64 bit. Questo è distinto da una coercizione ristretta, che può perdere dati. Un esempio di coercizione ristretta prevede la coercing di un intero con segno a 64 bit in un intero con segno a 32 bit.
Nella tabella seguente sono elencate le coercioni eseguite dal valore predefinito ChangeType
.
Tipo di origine | Tipo di destinazione |
---|---|
Qualsiasi tipo | Tipo di base. |
Qualsiasi tipo | Interfaccia implementata. |
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 |
Non riferimento | Riferimento per riferimento. |
Se un'implementazione del binder consente la coercizione dei valori stringa ai tipi numerici, il culture
parametro è necessario convertire una stringa che rappresenta 1000 in un Double valore, perché 1000 è rappresentato in modo diverso da impostazioni cultura diverse. Con il gestore di associazione predefinito non sono previste tali assegnazioni di stringhe.