Conversion.CTypeDynamic 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
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
方法优先于用户定义的静态转换,动态转换。
另请参阅
- TryConvert(ConvertBinder, Object)
- BindConvert(ConvertBinder)
- CTypeDynamic<TargetType>(Object)
- 使用动态对象 (Visual Basic)
- 演练:创建并使用动态对象(C# 和 Visual Basic)
适用于
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
要转换的对象。
返回
静态类型化为请求的泛型类型的对象。
示例
下面的示例使用 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)