Conversion.CTypeDynamic Metoda

Definice

Přetížení

Name Description
CTypeDynamic(Object, Type)

Převede objekt na zadaný typ.

CTypeDynamic<TargetType>(Object)

Převede objekt na zadaný obecný typ.

CTypeDynamic(Object, Type)

Zdroj:
Conversion.vb
Zdroj:
Conversion.vb
Zdroj:
Conversion.vb
Zdroj:
Conversion.vb
Zdroj:
Conversion.vb

Převede objekt na zadaný typ.

public:
 static System::Object ^ CTypeDynamic(System::Object ^ Expression, Type ^ TargetType);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")]
public static object CTypeDynamic(object? Expression, Type TargetType);
public static object CTypeDynamic(object? Expression, Type TargetType);
public static object CTypeDynamic(object Expression, Type TargetType);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")>]
static member CTypeDynamic : obj * Type -> obj
static member CTypeDynamic : obj * Type -> obj
Public Function CTypeDynamic (Expression As Object, TargetType As Type) As Object

Parametry

Expression
Object

Objekt, který chcete převést.

TargetType
Type

Typ, na který chcete objekt převést.

Návraty

Objekt, jehož typ za běhu je požadovaný cílový typ.

Atributy

Příklady

Následující příklad používá metodu CTypeDynamic k převodu dynamického objektu na řetězec pomocí převodu definovaného dynamickým objektem.

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

Poznámky

Metoda CTypeDynamic převede objekt předaný jako Expression parametr na typ určený parametrem TargetType . Pokud je objekt dynamickým objektem, použije CTypeDynamic metoda dostupné dynamické převody.

Metoda CTypeDynamic používá dynamické převody v souladu s sémantikou převodu definovanou samotným objektem. Pokud dynamický objekt dědí z DynamicObject, CTypeDynamic metoda se nejprve pokusí provést převod pomocí uživatelem definovaného statického převodu. Pokud uživatelem definovaný statický převod selže, CTypeDynamic metoda se pokusí provést převod pomocí dynamických převodů. Pokud dynamický objekt implementuje IDynamicMetaObjectProvider, CTypeDynamic metoda dává přednost dynamickým převodům před uživatelem definovanými statickými převody.

Viz také

Platí pro

CTypeDynamic<TargetType>(Object)

Zdroj:
Conversion.vb
Zdroj:
Conversion.vb
Zdroj:
Conversion.vb
Zdroj:
Conversion.vb
Zdroj:
Conversion.vb

Převede objekt na zadaný obecný typ.

public:
generic <typename TargetType>
 static TargetType CTypeDynamic(System::Object ^ Expression);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")]
public static TargetType CTypeDynamic<TargetType>(object? Expression);
public static TargetType CTypeDynamic<TargetType>(object? Expression);
public static TargetType CTypeDynamic<TargetType>(object Expression);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")>]
static member CTypeDynamic : obj -> 'argetType
static member CTypeDynamic : obj -> 'argetType
Public Function CTypeDynamic(Of TargetType) (Expression As Object) As TargetType

Parametry typu

TargetType

Typ, na který chcete objekt převést.

Parametry

Expression
Object

Objekt, který chcete převést.

Návraty

TargetType

Objekt staticky zadaný jako požadovaný obecný typ.

Atributy

Příklady

Následující příklad používá metodu CTypeDynamic k převodu dynamického objektu na řetězec pomocí převodu definovaného dynamickým objektem.

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

Poznámky

Metoda CTypeDynamic převede objekt předaný jako Expression parametr na typ určený typem obecného parametru. Pokud je objekt dynamickým objektem, použije CTypeDynamic metoda dostupné dynamické převody.

Metoda CTypeDynamic používá dynamické převody v souladu s sémantikou převodu definovanou samotným objektem. Pokud dynamický objekt dědí z DynamicObject, CTypeDynamic metoda se nejprve pokusí provést převod pomocí uživatelem definovaného statického převodu. Pokud uživatelem definovaný statický převod selže, CTypeDynamic metoda se pokusí provést převod pomocí dynamických převodů. Pokud dynamický objekt implementuje IDynamicMetaObjectProvider, CTypeDynamic metoda dává přednost dynamickým převodům před uživatelem definovanými statickými převody.

Viz také

Platí pro