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 метод имеет приоритет над динамическими преобразованиями, определяемыми пользователем, статическими преобразованиями.
См. также раздел
- TryConvert(ConvertBinder, Object)
- BindConvert(ConvertBinder)
- CTypeDynamic<TargetType>(Object)
- Работка с динамическими объектами (Visual Basic)
- Walkthrough: создание и использование динамических объектов (C# и Visual Basic)
Применяется к
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
Объект для преобразования.
Возвращаемое значение
Объект статически типизированный в качестве запрошенного универсального типа.
- Атрибуты
Примеры
В следующем примере метод используется 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)