다음을 통해 공유


Conversion.CTypeDynamic 메서드

정의

오버로드

CTypeDynamic(Object, Type)

개체를 지정된 형식으로 변환합니다.

CTypeDynamic<TargetType>(Object)

개체를 지정된 제네릭 형식으로 변환합니다.

CTypeDynamic(Object, Type)

Source:
Conversion.vb
Source:
Conversion.vb
Source:
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)

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

추가 정보

적용 대상