Conversion.CTypeDynamic メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| 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 メソッドは、ユーザー定義の静的変換よりも動的な変換よりも優先されます。
こちらもご覧ください
- TryConvert(ConvertBinder, Object)
- BindConvert(ConvertBinder)
- CTypeDynamic<TargetType>(Object)
- 動的オブジェクトを使用した作業 (Visual Basic)
- Walkthrough: 動的オブジェクトの作成と使用 (C# および Visual Basic))
適用対象
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
変換するオブジェクト。
返品
要求されたジェネリック型として静的に型指定されたオブジェクト。
例
次の例では、 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 メソッドは、ユーザー定義の静的変換よりも動的な変換よりも優先されます。
こちらもご覧ください
- TryConvert(ConvertBinder, Object)
- BindConvert(ConvertBinder)
- CTypeDynamic(Object, Type)
- 動的オブジェクトを使用した作業 (Visual Basic)
- Walkthrough: 動的オブジェクトの作成と使用 (C# および Visual Basic))