Conversion.CTypeDynamic Metódus

Definíció

Túlterhelések

Name Description
CTypeDynamic(Object, Type)

Egy objektumot a megadott típussá alakít át.

CTypeDynamic<TargetType>(Object)

Egy objektumot a megadott általános típussá alakít át.

CTypeDynamic(Object, Type)

Forrás:
Conversion.vb
Forrás:
Conversion.vb
Forrás:
Conversion.vb
Forrás:
Conversion.vb
Forrás:
Conversion.vb

Egy objektumot a megadott típussá alakít át.

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

Paraméterek

Expression
Object

Az átalakítandó objektum.

TargetType
Type

Az objektum konvertálásának típusa.

Válaszok

Olyan objektum, amelynek futásidejű típusa a kért céltípus.

Attribútumok

Példák

Az alábbi példa a CTypeDynamic dinamikus objektum sztringgé alakításához használja a dinamikus objektum által definiált átalakítást.

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

Megjegyzések

A CTypeDynamic metódus paraméterként Expression átadott objektumot a paraméter által TargetType megadott típusra konvertálja. Ha az objektum dinamikus objektum, a metódus az CTypeDynamic elérhető dinamikus konverziókat alkalmazza.

A CTypeDynamic metódus a maga az objektum által definiált konverziós szemantikának megfelelően alkalmazza a dinamikus konverziókat. Ha egy dinamikus objektum öröklődik, DynamicObjecta CTypeDynamic metódus először egy felhasználó által definiált statikus átalakítással próbálja meg végrehajtani az átalakítást. Ha a felhasználó által definiált statikus átalakítás meghiúsul, a CTypeDynamic metódus dinamikus átalakításokkal próbálja végrehajtani az átalakítást. Ha egy dinamikus objektum implementál IDynamicMetaObjectProvider, a metódus elsőbbséget élvez a CTypeDynamic felhasználó által definiált statikus átalakításokkal szemben.

Lásd még

A következőre érvényes:

CTypeDynamic<TargetType>(Object)

Forrás:
Conversion.vb
Forrás:
Conversion.vb
Forrás:
Conversion.vb
Forrás:
Conversion.vb
Forrás:
Conversion.vb

Egy objektumot a megadott általános típussá alakít át.

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

Típusparaméterek

TargetType

Az objektum konvertálásának típusa.

Paraméterek

Expression
Object

Az átalakítandó objektum.

Válaszok

TargetType

Egy statikusan beírt objektum a kért általános típusként.

Attribútumok

Példák

Az alábbi példa a CTypeDynamic dinamikus objektum sztringgé alakításához használja a dinamikus objektum által definiált átalakítást.

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

Megjegyzések

A CTypeDynamic metódus paraméterként Expression átadott objektumot az általános paraméter típusa által megadott típusra alakítja át. Ha az objektum dinamikus objektum, a metódus az CTypeDynamic elérhető dinamikus konverziókat alkalmazza.

A CTypeDynamic metódus a maga az objektum által definiált konverziós szemantikának megfelelően alkalmazza a dinamikus konverziókat. Ha egy dinamikus objektum öröklődik, DynamicObjecta CTypeDynamic metódus először egy felhasználó által definiált statikus átalakítással próbálja meg végrehajtani az átalakítást. Ha a felhasználó által definiált statikus átalakítás meghiúsul, a CTypeDynamic metódus dinamikus átalakításokkal próbálja végrehajtani az átalakítást. Ha egy dinamikus objektum implementál IDynamicMetaObjectProvider, a metódus elsőbbséget élvez a CTypeDynamic felhasználó által definiált statikus átalakításokkal szemben.

Lásd még

A következőre érvényes: