Conversion.CTypeDynamic Metodo

Definizione

Overload

Nome Descrizione
CTypeDynamic(Object, Type)

Converte un oggetto nel tipo specificato.

CTypeDynamic<TargetType>(Object)

Converte un oggetto nel tipo generico specificato.

CTypeDynamic(Object, Type)

Converte un oggetto nel tipo specificato.

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

Parametri

Expression
Object

Oggetto da convertire.

TargetType
Type

Tipo in cui convertire l'oggetto.

Valori restituiti

Oggetto il cui tipo in fase di esecuzione è il tipo di destinazione richiesto.

Esempio

Nell'esempio seguente viene utilizzato il CTypeDynamic metodo per convertire un oggetto dinamico in una stringa utilizzando la conversione definita dall'oggetto dinamico.

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

Commenti

Il CTypeDynamic metodo converte l'oggetto passato come Expression parametro nel tipo specificato dal TargetType parametro . Se l'oggetto è un oggetto dinamico, il CTypeDynamic metodo applica conversioni dinamiche disponibili.

Il CTypeDynamic metodo applica conversioni dinamiche in base alla semantica di conversione definita dall'oggetto stesso. Se un oggetto dinamico eredita da DynamicObject, il CTypeDynamic metodo tenta innanzitutto di eseguire la conversione usando una conversione statica definita dall'utente. Se la conversione statica definita dall'utente ha esito negativo, il CTypeDynamic metodo tenta di eseguire la conversione usando conversioni dinamiche. Se un oggetto dinamico implementa IDynamicMetaObjectProvider, il CTypeDynamic metodo dà la precedenza alle conversioni dinamiche rispetto alle conversioni statiche definite dall'utente.

Vedi anche

Si applica a

CTypeDynamic<TargetType>(Object)

Converte un oggetto nel tipo generico specificato.

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

Parametri di tipo

TargetType

Tipo in cui convertire l'oggetto.

Parametri

Expression
Object

Oggetto da convertire.

Valori restituiti

TargetType

Oggetto tipizzato in modo statico come tipo generico richiesto.

Esempio

Nell'esempio seguente viene utilizzato il CTypeDynamic metodo per convertire un oggetto dinamico in una stringa utilizzando la conversione definita dall'oggetto dinamico.

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

Commenti

Il CTypeDynamic metodo converte l'oggetto passato come Expression parametro nel tipo specificato dal tipo del parametro generico. Se l'oggetto è un oggetto dinamico, il CTypeDynamic metodo applica conversioni dinamiche disponibili.

Il CTypeDynamic metodo applica conversioni dinamiche in base alla semantica di conversione definita dall'oggetto stesso. Se un oggetto dinamico eredita da DynamicObject, il CTypeDynamic metodo tenta innanzitutto di eseguire la conversione usando una conversione statica definita dall'utente. Se la conversione statica definita dall'utente ha esito negativo, il CTypeDynamic metodo tenta di eseguire la conversione usando conversioni dinamiche. Se un oggetto dinamico implementa IDynamicMetaObjectProvider, il CTypeDynamic metodo dà la precedenza alle conversioni dinamiche rispetto alle conversioni statiche definite dall'utente.

Vedi anche

Si applica a