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