Binder.ChangeType(Object, Type, CultureInfo) Método

Definición

Cambia el tipo del valor Object especificado por el tipo Type especificado.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);
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

Parámetros

value
Object

Objeto que debe cambiarse a un nuevo Type.The object to change into a new Type.

type
Type

Nuevo tipo (Type) en que se convertirá el valor (value).The new Type that value will become.

culture
CultureInfo

Instancia de CultureInfo utilizada para controlar la conversión de tipos de datos.An instance of CultureInfo that is used to control the coercion of data types. Si culture es null, se usa CultureInfo del subproceso actual.If culture is null, the CultureInfo for the current thread is used.

Devoluciones

Object

Objeto que contiene el valor dado como el nuevo tipo.An object that contains the given value as the new type.

Comentarios

La reflexión modela las reglas de accesibilidad del sistema de tipos comunes.Reflection models the accessibility rules of the common type system. Por ejemplo, si el llamador está en el mismo ensamblado, el autor de la llamada no necesita permisos especiales para los miembros internos.For example, if the caller is in the same assembly, the caller does not need special permissions for internal members. De lo contrario, el autor de la llamada necesita ReflectionPermission .Otherwise, the caller needs ReflectionPermission. Esto es coherente con la búsqueda de miembros que están protegidos, privados, etc.This is consistent with lookup of members that are protected, private, and so on.

El principio general es que ChangeType debe realizar solo las conversiones de ampliación, que nunca pierden los datos.The general principle is that ChangeType should perform only widening coercions, which never lose data. Un ejemplo de una conversión de ampliación es la conversión de un valor que es un entero con signo de 32 bits en un valor que es un entero de 64 bits con signo.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. Esto se distingue de una conversión de restricción, que puede perder datos.This is distinguished from a narrowing coercion, which may lose data. Un ejemplo de una conversión de restricción consiste en convertir un entero con signo de 64 bits en un entero de 32 bits con signo.An example of a narrowing coercion is coercing a 64-bit signed integer to a 32-bit signed integer.

En la tabla siguiente se enumeran las conversiones realizadas por el valor predeterminado ChangeType .The following table lists the coercions performed by the default ChangeType.

Tipo de origenSource type Tipo de destinoTarget type
Cualquier tipoAny type Su tipo base.Its base type.
Cualquier tipoAny type La interfaz que implementa.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 DobleDouble
No referenciaNon-reference Por referencia.By-reference.

Si una implementación del enlazador permite la conversión de valores de cadena en tipos numéricos, el culture parámetro es necesario para convertir una cadena que representa 1000 en un Double valor, porque 1000 se representa de forma diferente en distintas referencias culturales.If a binder implementation allows coercion of string values to numeric types, the culture parameter is necessary to convert a string that represents 1000 to a Double value, because 1000 is represented differently by different cultures. El enlazador predeterminado no realiza estas conversiones de cadenas.The default binder does not do such string coercions.

Se aplica a