Conversion.CTypeDynamic 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
CTypeDynamic(Object, Type) |
將物件轉換成指定的型別。 |
CTypeDynamic<TargetType>(Object) |
將物件轉換為指定的泛型類型。 |
CTypeDynamic(Object, Type)
將物件轉換成指定的型別。
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)
將物件轉換為指定的泛型類型。
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)