Conversion.CTypeDynamic Metoda

Definicja

Przeciążenia

CTypeDynamic(Object, Type)

Konwertuje obiekt na określony typ.

CTypeDynamic<TargetType>(Object)

Konwertuje obiekt na określony typ ogólny.

CTypeDynamic(Object, Type)

Źródło:
Conversion.vb
Źródło:
Conversion.vb
Źródło:
Conversion.vb

Konwertuje obiekt na określony typ.

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

Parametry

Expression
Object

Do obiektu do skonwertowania.

TargetType
Type

Typ, do którego ma być konwertowany obiekt.

Zwraca

Obiekt, którego typ w czasie wykonywania jest żądanym typem docelowym.

Przykłady

W poniższym przykładzie użyto CTypeDynamic metody , aby przekonwertować obiekt dynamiczny na ciąg przy użyciu konwersji zdefiniowanej przez obiekt dynamiczny.

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  

Uwagi

Metoda CTypeDynamic konwertuje obiekt przekazany jako Expression parametr na typ określony przez TargetType parametr. Jeśli obiekt jest obiektem dynamicznym, CTypeDynamic metoda stosuje dostępne konwersje dynamiczne.

Metoda CTypeDynamic stosuje konwersje dynamiczne zgodnie z semantykami konwersji zdefiniowanymi przez sam obiekt. Jeśli obiekt dynamiczny dziedziczy z DynamicObjectmetody , CTypeDynamic metoda najpierw próbuje wykonać konwersję przy użyciu konwersji zdefiniowanej przez użytkownika, konwersji statycznej. Jeśli zdefiniowana przez użytkownika konwersja statyczna nie powiedzie się, CTypeDynamic metoda próbuje wykonać konwersję przy użyciu konwersji dynamicznych. Jeśli obiekt dynamiczny implementuje IDynamicMetaObjectProvidermetodę , CTypeDynamic metoda ma pierwszeństwo przed konwersjami dynamicznymi w przypadku konwersji statycznych zdefiniowanych przez użytkownika.

Zobacz też

Dotyczy

CTypeDynamic<TargetType>(Object)

Źródło:
Conversion.vb
Źródło:
Conversion.vb
Źródło:
Conversion.vb

Konwertuje obiekt na określony typ ogólny.

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

Parametry typu

TargetType

Typ, do którego ma być konwertowany obiekt.

Parametry

Expression
Object

Do obiektu do skonwertowania.

Zwraca

TargetType

Obiekt statycznie wpisany jako żądany typ ogólny.

Przykłady

W poniższym przykładzie użyto CTypeDynamic metody , aby przekonwertować obiekt dynamiczny na ciąg przy użyciu konwersji zdefiniowanej przez obiekt dynamiczny.

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  

Uwagi

Metoda CTypeDynamic konwertuje obiekt przekazany jako Expression parametr na typ określony przez typ parametru ogólnego. Jeśli obiekt jest obiektem dynamicznym, CTypeDynamic metoda stosuje dostępne konwersje dynamiczne.

Metoda CTypeDynamic stosuje konwersje dynamiczne zgodnie z semantykami konwersji zdefiniowanymi przez sam obiekt. Jeśli obiekt dynamiczny dziedziczy z DynamicObjectmetody , CTypeDynamic metoda najpierw próbuje wykonać konwersję przy użyciu konwersji zdefiniowanej przez użytkownika, konwersji statycznej. Jeśli zdefiniowana przez użytkownika konwersja statyczna nie powiedzie się, CTypeDynamic metoda próbuje wykonać konwersję przy użyciu konwersji dynamicznych. Jeśli obiekt dynamiczny implementuje IDynamicMetaObjectProvidermetodę , CTypeDynamic metoda ma pierwszeństwo przed konwersjami dynamicznymi w przypadku konwersji statycznych zdefiniowanych przez użytkownika.

Zobacz też

Dotyczy