Condividi tramite


Conversion.CTypeDynamic Metodo

Definizione

Overload

CTypeDynamic(Object, Type)

Converte un oggetto nel tipo specificato.

CTypeDynamic<TargetType>(Object)

Converte un oggetto nel tipo generico specificato.

CTypeDynamic(Object, Type)

Source:
Conversion.vb
Source:
Conversion.vb
Source:
Conversion.vb

Converte un oggetto nel tipo specificato.

public:
 static System::Object ^ CTypeDynamic(System::Object ^ Expression, Type ^ TargetType);
public static object CTypeDynamic (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.

Restituisce

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

Esempio

Nell'esempio seguente viene usato il CTypeDynamic metodo per convertire un oggetto dinamico in una stringa usando 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 al 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 prima di eseguire la conversione usando una conversione definita dall'utente e statica. Se la conversione statica 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)

Source:
Conversion.vb
Source:
Conversion.vb
Source:
Conversion.vb

Converte un oggetto nel tipo generico specificato.

public:
generic <typename TargetType>
 static TargetType CTypeDynamic(System::Object ^ Expression);
public static TargetType CTypeDynamic<TargetType> (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.

Restituisce

TargetType

Oggetto tipizzato in modo statico come tipo generico richiesto.

Esempio

Nell'esempio seguente viene usato il CTypeDynamic metodo per convertire un oggetto dinamico in una stringa usando 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 al 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 prima di eseguire la conversione usando una conversione definita dall'utente e statica. Se la conversione statica 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