次の方法で共有


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 、ユーザー定義の静的変換よりも動的な変換よりも優先されます。

こちらもご覧ください

適用対象