Aracılığıyla paylaş


Conversion.CTypeDynamic Yöntem

Tanım

Aşırı Yüklemeler

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

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

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

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.

Ö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 parametre CTypeDynamic 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öntem 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 üzerinden 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

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

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

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.

Ö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 parametre türü tarafından 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öntem 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 üzerinden dinamik dönüştürmelere öncelik verir.

Ayrıca bkz.

Şunlara uygulanır