Conversion.CTypeDynamic 方法

定義

多載

名稱 Description
CTypeDynamic(Object, Type)

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

CTypeDynamic<TargetType>(Object)

將物件轉換為指定的通用型別。

CTypeDynamic(Object, Type)

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

public:
 static System::Object ^ CTypeDynamic(System::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)

將物件轉換為指定的通用型別。

public:
generic <typename TargetType>
 static TargetType CTypeDynamic(System::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 方法優先於動態轉換,而非使用者定義的靜態轉換。

另請參閱

適用於