Binder.ChangeType(Object, Type, CultureInfo) Metodo

Definizione

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.

Si applica a