Conversion.CTypeDynamic Método

Definição

Sobrecargas

Nome Description
CTypeDynamic(Object, Type)

Converte um objeto no tipo especificado.

CTypeDynamic<TargetType>(Object)

Converte um objeto no tipo genérico especificado.

CTypeDynamic(Object, Type)

Converte um objeto no tipo especificado.

public:
 static System::Object ^ CTypeDynamic(System::Object ^ Expression, Type ^ TargetType);
public static object CTypeDynamic(object Expression, Type TargetType);
static member CTypeDynamic : obj * Type -> obj
Public Function CTypeDynamic (Expression As Object, TargetType As Type) As Object

Parâmetros

Expression
Object

O objeto a ser convertido.

TargetType
Type

O tipo para o qual converter o objeto.

Retornos

Um objeto cujo tipo em tempo de execução é o tipo de destino solicitado.

Exemplos

O exemplo a seguir usa o CTypeDynamic método para converter um objeto dinâmico em uma cadeia de caracteres usando a conversão definida pelo objeto dinâmico.

Imports System.Dynamic

Module Module1
    Sub Main()
        Dim dyn As Object = New SampleDynamicObject
        Dim sampleString = CTypeDynamic(dyn, GetType(String))
        Console.WriteLine(sampleString)
    End Sub
End Module

Class SampleDynamicObject
    Inherits DynamicObject

    Public Overrides Function TryConvert(ByVal binder As ConvertBinder,
                                         ByRef result As Object) As Boolean

        If binder.Type = GetType(String) Then
            result = "Sample String"
            Return True
        End If

        Return False
    End Function
End Class

Comentários

O CTypeDynamic método converte o objeto passado como o Expression parâmetro para o tipo especificado pelo TargetType parâmetro. Se o objeto for um objeto dinâmico, o CTypeDynamic método aplicará conversões dinâmicas disponíveis.

O CTypeDynamic método aplica conversões dinâmicas de acordo com a semântica de conversão definida pelo próprio objeto. Se um objeto dinâmico herdar, DynamicObjecto CTypeDynamic método primeiro tentará executar a conversão usando uma conversão estática definida pelo usuário. Se a conversão estática definida pelo usuário falhar, o CTypeDynamic método tentará executar a conversão usando conversões dinâmicas. Se um objeto dinâmico for implementado IDynamicMetaObjectProvider, o CTypeDynamic método dará precedência a conversões dinâmicas em conversões estáticas definidas pelo usuário.

Confira também

Aplica-se a

CTypeDynamic<TargetType>(Object)

Converte um objeto no tipo genérico especificado.

public:
generic <typename TargetType>
 static TargetType CTypeDynamic(System::Object ^ Expression);
public static TargetType CTypeDynamic<TargetType>(object Expression);
static member CTypeDynamic : obj -> 'argetType
Public Function CTypeDynamic(Of TargetType) (Expression As Object) As TargetType

Parâmetros de tipo

TargetType

O tipo para o qual converter o objeto.

Parâmetros

Expression
Object

O objeto a ser convertido.

Retornos

TargetType

Um objeto tipado estaticamente como o tipo genérico solicitado.

Exemplos

O exemplo a seguir usa o CTypeDynamic método para converter um objeto dinâmico em uma cadeia de caracteres usando a conversão definida pelo objeto dinâmico.

Imports System.Dynamic

Module Module1
    Sub Main()
        Dim dyn As Object = New SampleDynamicObject
        Dim str = CTypeDynamic(Of String)(dyn)
        Console.WriteLine(str)
    End Sub
End Module

Class SampleDynamicObject
    Inherits DynamicObject

    Public Overrides Function TryConvert(ByVal binder As ConvertBinder,
                                         ByRef result As Object) As Boolean

        If binder.Type = GetType(String) Then
            result = "Sample String"
            Return True
        End If

        Return False
    End Function
End Class

Comentários

O CTypeDynamic método converte o objeto passado como o Expression parâmetro para o tipo especificado pelo tipo do parâmetro genérico. Se o objeto for um objeto dinâmico, o CTypeDynamic método aplicará conversões dinâmicas disponíveis.

O CTypeDynamic método aplica conversões dinâmicas de acordo com a semântica de conversão definida pelo próprio objeto. Se um objeto dinâmico herdar, DynamicObjecto CTypeDynamic método primeiro tentará executar a conversão usando uma conversão estática definida pelo usuário. Se a conversão estática definida pelo usuário falhar, o CTypeDynamic método tentará executar a conversão usando conversões dinâmicas. Se um objeto dinâmico for implementado IDynamicMetaObjectProvider, o CTypeDynamic método dará precedência a conversões dinâmicas em conversões estáticas definidas pelo usuário.

Confira também

Aplica-se a