Поделиться через


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 метод имеет приоритет перед динамическими преобразованиями, определяемыми пользователем, статическими.

См. также раздел

Применяется к