Conversion.CTypeDynamic メソッド

定義

オーバーロード

CTypeDynamic(Object, Type)

オブジェクトを指定された型に変換します。Converts an object to the specified type.

CTypeDynamic<TargetType>(Object)

指定したジェネリック型にオブジェクトを変換します。Converts an object to the specified generic type.

CTypeDynamic(Object, Type)

オブジェクトを指定された型に変換します。Converts an object to the specified 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

変換するオブジェクト。The object to convert.

TargetType
Type

変換後のオブジェクトの型。The type to which to convert the object.

戻り値

Object

実行時の種類が要求されたターゲットの種類であるオブジェクト。An object whose type at run time is the requested target type.

次の例では、CTypeDynamic メソッドを使用して、動的オブジェクトによって定義された変換を使用して、動的オブジェクトを文字列に変換します。The following example uses the CTypeDynamic method to convert a dynamic object to a string by using the conversion defined by the dynamic object.

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 パラメーターによって指定された型に変換します。The CTypeDynamic method converts the object passed as the Expression parameter to the type specified by the TargetType parameter. オブジェクトが動的オブジェクトの場合は、CTypeDynamic メソッドによって、使用可能な動的変換が適用されます。If the object is a dynamic object, the CTypeDynamic method applies available dynamic conversions.

CTypeDynamic メソッドは、オブジェクト自体によって定義された変換セマンティクスに従って動的変換を適用します。The CTypeDynamic method applies dynamic conversions in accordance with the conversion semantics defined by the object itself. 動的オブジェクトが DynamicObjectから継承する場合、CTypeDynamic メソッドはまず、ユーザー定義の静的な変換を使用して変換を実行しようとします。If a dynamic object inherits from DynamicObject, the CTypeDynamic method first attempts to perform the conversion by using a user-defined, static conversion. ユーザー定義の静的変換が失敗した場合、CTypeDynamic メソッドは、動的変換を使用して変換を実行しようとします。If the user-defined, static conversion fails, the CTypeDynamic method attempts to perform the conversion by using dynamic conversions. 動的オブジェクトが IDynamicMetaObjectProviderを実装している場合、CTypeDynamic メソッドは、ユーザー定義の静的変換を使用した動的変換に優先します。If a dynamic object implements IDynamicMetaObjectProvider, the CTypeDynamic method gives precedence to dynamic conversions over user-defined, static conversions.

こちらもご覧ください

CTypeDynamic<TargetType>(Object)

指定したジェネリック型にオブジェクトを変換します。Converts an object to the specified generic type.

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

変換後のオブジェクトの型。The type to which to convert the object.

パラメーター

Expression
Object

変換するオブジェクト。The object to convert.

戻り値

TargetType

要求されたジェネリック型として静的に型指定されたオブジェクト。An object statically typed as the requested generic type.

次の例では、CTypeDynamic メソッドを使用して、動的オブジェクトによって定義された変換を使用して、動的オブジェクトを文字列に変換します。The following example uses the CTypeDynamic method to convert a dynamic object to a string by using the conversion defined by the dynamic object.

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 パラメーターとして渡されたオブジェクトを、ジェネリックパラメーターの型によって指定された型に変換します。The CTypeDynamic method converts the object passed as the Expression parameter to the type specified by the type of the generic parameter. オブジェクトが動的オブジェクトの場合は、CTypeDynamic メソッドによって、使用可能な動的変換が適用されます。If the object is a dynamic object, the CTypeDynamic method applies available dynamic conversions.

CTypeDynamic メソッドは、オブジェクト自体によって定義された変換セマンティクスに従って動的変換を適用します。The CTypeDynamic method applies dynamic conversions in accordance with the conversion semantics defined by the object itself. 動的オブジェクトが DynamicObjectから継承する場合、CTypeDynamic メソッドはまず、ユーザー定義の静的な変換を使用して変換を実行しようとします。If a dynamic object inherits from DynamicObject, the CTypeDynamic method first attempts to perform the conversion by using a user-defined, static conversion. ユーザー定義の静的変換が失敗した場合、CTypeDynamic メソッドは、動的変換を使用して変換を実行しようとします。If the user-defined, static conversion fails, the CTypeDynamic method attempts to perform the conversion by using dynamic conversions. 動的オブジェクトが IDynamicMetaObjectProviderを実装している場合、CTypeDynamic メソッドは、ユーザー定義の静的変換を使用した動的変換に優先します。If a dynamic object implements IDynamicMetaObjectProvider, the CTypeDynamic method gives precedence to dynamic conversions over user-defined, static conversions.

こちらもご覧ください

適用対象