Binder.ChangeType(Object, Type, CultureInfo) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Cambia el tipo del valor Object
especificado por el tipo Type
especificado.
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
.
- type
- Type
Nuevo tipo (Type
) en que se convertirá el valor (value
).
- culture
- CultureInfo
Instancia de CultureInfo utilizada para controlar la conversión de tipos de datos. Si culture
es null
, se usa CultureInfo del subproceso actual.
Devoluciones
Objeto que contiene el valor dado 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 es 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 por el valor predeterminado 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, Single, Double |
Int32 | Int64, Single, Double |
UInt64 | Single, Double |
Int64 | Single, Double |
Single | Doble |
No referencia | Por referencia. |
Si una implementación de enlazador permite la coerción de valores de cadena a tipos numéricos, el culture
parámetro es necesario para convertir una cadena que representa 1000 a un Double valor, ya que 1000 se representa de forma diferente por referencias culturales diferentes. El enlazador predeterminado no realiza estas conversiones de cadenas.