Conversion.CTypeDynamic Метод

Определение

Перегрузки

Имя Описание
CTypeDynamic(Object, Type)

Преобразует объект в указанный тип.

CTypeDynamic<TargetType>(Object)

Преобразует объект в указанный универсальный тип.

CTypeDynamic(Object, Type)

Исходный код:
Conversion.vb
Исходный код:
Conversion.vb
Исходный код:
Conversion.vb
Исходный код:
Conversion.vb
Исходный код:
Conversion.vb

Преобразует объект в указанный тип.

public:
 static System::Object ^ CTypeDynamic(System::Object ^ Expression, Type ^ TargetType);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")]
public static object CTypeDynamic(object? Expression, Type TargetType);
public static object CTypeDynamic(object? Expression, Type TargetType);
public static object CTypeDynamic(object Expression, Type TargetType);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")>]
static member CTypeDynamic : obj * Type -> obj
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
Исходный код:
Conversion.vb
Исходный код:
Conversion.vb

Преобразует объект в указанный универсальный тип.

public:
generic <typename TargetType>
 static TargetType CTypeDynamic(System::Object ^ Expression);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")]
public static TargetType CTypeDynamic<TargetType>(object? Expression);
public static TargetType CTypeDynamic<TargetType>(object? Expression);
public static TargetType CTypeDynamic<TargetType>(object Expression);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")>]
static member CTypeDynamic : obj -> 'argetType
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 метод имеет приоритет над динамическими преобразованиями, определяемыми пользователем, статическими преобразованиями.

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

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