Conversion.CTypeDynamic Yöntem

Tanım

Aşırı Yüklemeler

Name Description
CTypeDynamic(Object, Type)

Bir nesneyi belirtilen türe dönüştürür.

CTypeDynamic<TargetType>(Object)

Bir nesneyi belirtilen genel türe dönüştürür.

CTypeDynamic(Object, Type)

Kaynak:
Conversion.vb
Kaynak:
Conversion.vb
Kaynak:
Conversion.vb
Kaynak:
Conversion.vb
Kaynak:
Conversion.vb

Bir nesneyi belirtilen türe dönüştürür.

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

Parametreler

Expression
Object

Dönüştürülecek nesne.

TargetType
Type

Nesnenin dönüştürüldüğü tür.

Döndürülenler

Çalışma zamanında türü istenen hedef türü olan bir nesne.

Öznitelikler

Örnekler

Aşağıdaki örnek, dinamik nesne tarafından tanımlanan dönüştürmeyi kullanarak bir dinamik nesneyi dizeye dönüştürmek için yöntemini kullanır CTypeDynamic .

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

Açıklamalar

yöntemi, CTypeDynamic parametre olarak Expression geçirilen nesneyi parametresi tarafından belirtilen türe TargetType dönüştürür. Nesne dinamik bir nesneyse, CTypeDynamic yöntemi kullanılabilir dinamik dönüştürmeleri uygular.

yöntemi, CTypeDynamic nesnenin kendisi tarafından tanımlanan dönüştürme semantiğine uygun olarak dinamik dönüştürmeler uygular. Bir dinamik nesne öğesinden DynamicObjectCTypeDynamic devralıyorsa, yöntemi önce kullanıcı tanımlı, statik bir dönüştürme kullanarak dönüştürmeyi gerçekleştirmeyi dener. Kullanıcı tanımlı statik dönüştürme başarısız olursa, CTypeDynamic yöntemi dinamik dönüştürmeleri kullanarak dönüştürmeyi gerçekleştirmeye çalışır. Dinamik bir nesne uygularsa IDynamicMetaObjectProviderCTypeDynamic yöntemi, kullanıcı tanımlı statik dönüştürmeler yerine dinamik dönüştürmelere öncelik verir.

Ayrıca bkz.

Şunlara uygulanır

CTypeDynamic<TargetType>(Object)

Kaynak:
Conversion.vb
Kaynak:
Conversion.vb
Kaynak:
Conversion.vb
Kaynak:
Conversion.vb
Kaynak:
Conversion.vb

Bir nesneyi belirtilen genel türe dönüştürür.

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ür Parametreleri

TargetType

Nesnenin dönüştürüldüğü tür.

Parametreler

Expression
Object

Dönüştürülecek nesne.

Döndürülenler

TargetType

İstenen genel tür olarak statik olarak yazılan bir nesne.

Öznitelikler

Örnekler

Aşağıdaki örnek, dinamik nesne tarafından tanımlanan dönüştürmeyi kullanarak bir dinamik nesneyi dizeye dönüştürmek için yöntemini kullanır CTypeDynamic .

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

Açıklamalar

yöntemi, CTypeDynamic parametre olarak Expression geçirilen nesneyi genel parametrenin türüne göre belirtilen türe dönüştürür. Nesne dinamik bir nesneyse, CTypeDynamic yöntemi kullanılabilir dinamik dönüştürmeleri uygular.

yöntemi, CTypeDynamic nesnenin kendisi tarafından tanımlanan dönüştürme semantiğine uygun olarak dinamik dönüştürmeler uygular. Bir dinamik nesne öğesinden DynamicObjectCTypeDynamic devralıyorsa, yöntemi önce kullanıcı tanımlı, statik bir dönüştürme kullanarak dönüştürmeyi gerçekleştirmeyi dener. Kullanıcı tanımlı statik dönüştürme başarısız olursa, CTypeDynamic yöntemi dinamik dönüştürmeleri kullanarak dönüştürmeyi gerçekleştirmeye çalışır. Dinamik bir nesne uygularsa IDynamicMetaObjectProviderCTypeDynamic yöntemi, kullanıcı tanımlı statik dönüştürmeler yerine dinamik dönüştürmelere öncelik verir.

Ayrıca bkz.

Şunlara uygulanır