Partilhar via


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

Definição

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.

Aplica-se a