Conversion.CTypeDynamic 메서드

정의

오버로드

Name 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 사용자 정의 정적 변환보다 동적 변환보다 우선합니다.

추가 정보

적용 대상