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

Definición

Cambia el tipo de objeto especificado Object a la clase especificada 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

Parámetros

value
Object

Objeto que se va a cambiar a un nuevo Type.

type
Type

El nuevo Type que value se convertirá.

culture
CultureInfo

Instancia de CultureInfo que se usa para controlar la coerción de los tipos de datos. Si culture es null, se usa para CultureInfo el subproceso actual.

Devoluciones

Objeto que contiene el valor especificado como el nuevo tipo.

Comentarios

La reflexión modela las reglas de accesibilidad del sistema de tipos comunes. Por ejemplo, si el autor de la llamada está en el mismo ensamblado, el autor de la llamada no necesita permisos especiales para los miembros internos. De lo contrario, el autor de la llamada necesita ReflectionPermission. Esto es coherente con la búsqueda de miembros protegidos, privados, etc.

El principio general es que ChangeType solo debe realizar coerciones de ampliación, que nunca pierden datos. Un ejemplo de una coerción de ampliación consiste en convertir un valor que es un entero de 32 bits con signo en un valor que es un entero de 64 bits con signo. Esto se distingue de una coerción de restricción, que puede perder datos. Un ejemplo de una coerción de restricción consiste en convertir un entero de 64 bits con signo en un entero de 32 bits con signo.

En la tabla siguiente se enumeran las coerciones realizadas de forma predeterminada ChangeType.

Tipo de origen Tipo de destino
Cualquier tipo Su tipo base.
Cualquier tipo La interfaz que implementa.
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, Simple, Doble
Int32 Int64, Simple, Doble
UInt64 Sencillo, Doble
Int64 Sencillo, Doble
Single Double
No referencia Por referencia.

Si una implementación del enlazador permite la coerción de valores de cadena a tipos numéricos, el culture parámetro es necesario para convertir una cadena que represente 1000 a un Double valor, ya que 1000 se representa de forma diferente por referencias culturales diferentes. El enlazador predeterminado no realiza estas coerciones de cadena.

Se aplica a