Conversion.CTypeDynamic 方法

定義

多載

CTypeDynamic(Object, Type)

將物件轉換成指定的型別。

CTypeDynamic<TargetType>(Object)

將物件轉換為指定的泛型類型。

CTypeDynamic(Object, Type)

來源:
Conversion.vb
來源:
Conversion.vb
來源:
Conversion.vb

將物件轉換成指定的型別。

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

參數

Expression
Object

要轉換的物件。

TargetType
Type

要將物件轉換成的型別。

傳回

物件,其類型於執行階段為所要求的目標類型。

範例

下列範例會 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  

備註

方法 CTypeDynamic 會將傳遞為 Expression 參數的物件轉換為 參數所 TargetType 指定的型別。 如果對象是動態物件,此方法 CTypeDynamic 會套用可用的動態轉換。

方法會 CTypeDynamic 根據物件本身所定義的轉換語意來套用動態轉換。 如果動態物件繼承自 DynamicObject,此方法 CTypeDynamic 會先嘗試使用使用者定義的靜態轉換來執行轉換。 如果使用者定義、靜態轉換失敗, CTypeDynamic 此方法會嘗試使用動態轉換來執行轉換。 如果動態物件實作 IDynamicMetaObjectProvider,此方法 CTypeDynamic 會優先於動態轉換,而非使用者定義的靜態轉換。

另請參閱

適用於

CTypeDynamic<TargetType>(Object)

來源:
Conversion.vb
來源:
Conversion.vb
來源:
Conversion.vb

將物件轉換為指定的泛型類型。

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

類型參數

TargetType

要將物件轉換成的型別。

參數

Expression
Object

要轉換的物件。

傳回

TargetType

物件,其靜態類型為所要求的泛型類型。

範例

下列範例會 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  

備註

方法 CTypeDynamic 會將傳遞為 Expression 參數的物件轉換成泛型參數型別所指定的型別。 如果對象是動態物件,此方法 CTypeDynamic 會套用可用的動態轉換。

方法會 CTypeDynamic 根據物件本身所定義的轉換語意來套用動態轉換。 如果動態物件繼承自 DynamicObject,此方法 CTypeDynamic 會先嘗試使用使用者定義的靜態轉換來執行轉換。 如果使用者定義、靜態轉換失敗, CTypeDynamic 此方法會嘗試使用動態轉換來執行轉換。 如果動態物件實作 IDynamicMetaObjectProvider,此方法 CTypeDynamic 會優先於動態轉換,而非使用者定義的靜態轉換。

另請參閱

適用於