Conversion.CTypeDynamic Methode

Definitie

Overloads

Name Description
CTypeDynamic(Object, Type)

Converteert een object naar het opgegeven type.

CTypeDynamic<TargetType>(Object)

Converteert een object naar het opgegeven algemene type.

CTypeDynamic(Object, Type)

Converteert een object naar het opgegeven type.

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

Parameters

Expression
Object

Het object dat moet worden geconverteerd.

TargetType
Type

Het type waarnaar het object moet worden geconverteerd.

Retouren

Een object waarvan het type tijdens runtime het aangevraagde doeltype is.

Voorbeelden

In het volgende voorbeeld wordt de CTypeDynamic methode gebruikt om een dynamisch object te converteren naar een tekenreeks met behulp van de conversie die is gedefinieerd door het dynamische object.

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

Opmerkingen

De CTypeDynamic methode converteert het object dat als parameter Expression wordt doorgegeven naar het type dat is opgegeven door de TargetType parameter. Als het object een dynamisch object is, past de CTypeDynamic methode beschikbare dynamische conversies toe.

De CTypeDynamic methode past dynamische conversies toe in overeenstemming met de conversiesemantiek die door het object zelf is gedefinieerd. Als een dynamisch object wordt overgenomen van DynamicObject, probeert de methode eerst de conversie uit te voeren met behulp van een door de CTypeDynamic gebruiker gedefinieerde statische conversie. Als de door de gebruiker gedefinieerde statische conversie mislukt, probeert de CTypeDynamic methode de conversie uit te voeren met behulp van dynamische conversies. Als een dynamisch object wordt geïmplementeerd IDynamicMetaObjectProvider, heeft de methode voorrang op dynamische conversies via door de CTypeDynamic gebruiker gedefinieerde statische conversies.

Zie ook

Van toepassing op

CTypeDynamic<TargetType>(Object)

Converteert een object naar het opgegeven algemene type.

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

Type parameters

TargetType

Het type waarnaar het object moet worden geconverteerd.

Parameters

Expression
Object

Het object dat moet worden geconverteerd.

Retouren

TargetType

Een object statisch getypt als het aangevraagde algemene type.

Voorbeelden

In het volgende voorbeeld wordt de CTypeDynamic methode gebruikt om een dynamisch object te converteren naar een tekenreeks met behulp van de conversie die is gedefinieerd door het dynamische object.

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

Opmerkingen

De CTypeDynamic methode converteert het object dat is doorgegeven als de Expression parameter naar het type dat is opgegeven door het type van de algemene parameter. Als het object een dynamisch object is, past de CTypeDynamic methode beschikbare dynamische conversies toe.

De CTypeDynamic methode past dynamische conversies toe in overeenstemming met de conversiesemantiek die door het object zelf is gedefinieerd. Als een dynamisch object wordt overgenomen van DynamicObject, probeert de methode eerst de conversie uit te voeren met behulp van een door de CTypeDynamic gebruiker gedefinieerde statische conversie. Als de door de gebruiker gedefinieerde statische conversie mislukt, probeert de CTypeDynamic methode de conversie uit te voeren met behulp van dynamische conversies. Als een dynamisch object wordt geïmplementeerd IDynamicMetaObjectProvider, heeft de methode voorrang op dynamische conversies via door de CTypeDynamic gebruiker gedefinieerde statische conversies.

Zie ook

Van toepassing op