Binder.ChangeType(Object, Type, CultureInfo) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Altera o tipo do Object
determinado para o Type
determinado.
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
O objeto a ser alterado em um novo Type
.
- type
- Type
O novo Type
que value
se tornará.
- culture
- CultureInfo
Uma instância de CultureInfo que é usada para controlar a coerção de tipos de dados. Caso culture
seja null
, CultureInfo para o thread atual é usado.
Retornos
Um objeto que contém o valor especificado como o novo tipo.
Comentários
A reflexão modela as regras de acessibilidade do sistema de tipos comuns. Por exemplo, se o chamador estiver no mesmo assembly, o chamador não precisará de permissões especiais para membros internos. Caso contrário, o chamador precisará ReflectionPermissionde . Isso é consistente com a pesquisa de membros protegidos, privados e assim por diante.
O princípio geral é que ChangeType
deve executar apenas coerções de expansão, que nunca perdem dados. Um exemplo de uma coerção de expansão é forçar um valor que é um inteiro com sinal de 32 bits para um valor que é um inteiro com sinal de 64 bits. Isso é diferenciado de uma coerção de restrição, que pode perder dados. Um exemplo de coerção de restrição é forçar um inteiro com sinal de 64 bits para um inteiro com sinal de 32 bits.
A tabela a seguir lista as coerções executadas pelo padrão ChangeType
.
Tipo de origem | Tipo de destino |
---|---|
Qualquer tipo | Seu tipo base. |
Qualquer tipo | A interface que ela implementa. |
Char | UInt16, UInt32, Int32, UInt64, Int64, Single e Double |
Byte | Char, UInt16, Int16, UInt32, Int32, UInt64, Int64, Single e Double |
SByte | Int16, Int32, Int64, Single e Double |
UInt16 | UInt32, Int32, UInt64, Int64, Single e Double |
Int16 | Int32, Int64, Single e Double |
UInt32 | UInt64, Int64, Single e Double |
Int32 | Int64, Single e Double |
UInt64 | Single e Double |
Int64 | Single e Double |
Single | Double |
Não referência | Por referência. |
Se uma implementação de associador permitir a coerção de valores de cadeia de caracteres para tipos numéricos, o culture
parâmetro será necessário para converter uma cadeia de caracteres que representa 1000 em um Double valor, pois 1000 é representado de forma diferente por culturas diferentes. O associador padrão não executa coerções de cadeia de caracteres desse tipo.