Conversion.CTypeDynamic 方法

定义

重载

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 方法优先于用户定义的静态转换,动态转换。

另请参阅

适用于

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

要转换的对象。

返回

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 方法优先于用户定义的静态转换,动态转换。

另请参阅

适用于