Conversion.CTypeDynamic メソッド

定義

オーバーロード

名前 説明
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 メソッドは、ユーザー定義の静的変換よりも動的な変換よりも優先されます。

こちらもご覧ください

適用対象