Binder.ChangeType(Object, Type, CultureInfo) Metodo

Definizione

Modifica il tipo di Object specificato nel Type specificato.Changes the type of the given Object to the given 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);
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.The object to change into a new Type.

type
Type

Nuovo Type assegnato a value.The new Type that value will become.

culture
CultureInfo

Istanza dell'oggetto CultureInfo utilizzata per controllare l'assegnazione forzata dei tipi di dati.An instance of CultureInfo that is used to control the coercion of data types. Se culture è null, per il thread corrente verrà usato l'oggetto CultureInfo.If culture is null, the CultureInfo for the current thread is used.

Nota Questo parametro, ad esempio, è necessario per convertire un oggetto String che rappresenta 1000 in un valore Double, poiché 1000 viene rappresentato in modo diverso dalle diverse impostazioni cultura.Note For example, this parameter is necessary to convert a String that represents 1000 to a Double value, because 1000 is represented differently by different cultures.

Restituisce

Oggetto che contiene il valore dato come nuovo tipo.An object that contains the given value as the new type.

Commenti

Modelli di Reflection le regole di accessibilità del Common Type System.Reflection models the accessibility rules of the common type system. Se, ad esempio, il chiamante si trova nello stesso assembly, il chiamante non necessita di autorizzazioni speciali per i membri interni.For example, if the caller is in the same assembly, the caller does not need special permissions for internal members. In caso contrario, il chiamante deve ReflectionPermission.Otherwise, the caller needs ReflectionPermission. Questo è coerente con la ricerca di membri protetti, privati e così via.This is consistent with lookup of members that are protected, private, and so on.

Il principio generale è che ChangeType deve eseguire solo le coercizioni verso un tipo di dati più grande, che non perdono mai i dati.The general principle is that ChangeType should perform only widening coercions, which never lose data. Un esempio di coercizione verso un tipo di oggetto più ampio consiste nell'assegnare un valore che corrisponde a un intero con segno a 32 bit a un valore che corrisponde a un intero con segno a 64 bit.An example of a widening coercion is coercing a value that is a 32-bit signed integer to a value that is a 64-bit signed integer. Si distingue da una coercizione verso un tipo di dati più piccolo, che può perdere dati.This is distinguished from a narrowing coercion, which may lose data. Un esempio di coercizione verso un tipo di caratteri più piccolo consiste nell'assegnare un intero con segno a 64 bit a un intero con segno a 32 bit.An example of a narrowing coercion is coercing a 64-bit signed integer to a 32-bit signed integer.

Nella tabella seguente sono elencate le coercizioni eseguite dal ChangeTypepredefinito.The following table lists the coercions performed by the default ChangeType.

Tipo di origineSource type Tipo di destinazioneTarget type
Qualsiasi tipoAny type Tipo di base.Its base type.
Qualsiasi tipoAny type Interfaccia implementata.The interface it implements.
CharChar UInt16, UInt32, Int32, UInt64, Int64, Single, DoubleUInt16, UInt32, Int32, UInt64, Int64, Single, Double
ByteByte Char, UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, DoubleChar, UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double
SByteSByte Int16, Int32, Int64, Single, DoubleInt16, Int32, Int64, Single, Double
UInt16UInt16 UInt32, Int32, UInt64, Int64, Single, DoubleUInt32, Int32, UInt64, Int64, Single, Double
Int16Int16 Int32, Int64, Single, DoubleInt32, Int64, Single, Double
UInt32UInt32 UInt64, Int64, Single, DoubleUInt64, Int64, Single, Double
Int32Int32 Int64, Single, DoubleInt64, Single, Double
UInt64UInt64 Single, DoubleSingle, Double
Int64Int64 Single, DoubleSingle, Double
SingleSingle DoubleDouble
Non di riferimentoNon-reference Per riferimento.By-reference.

Si applica a