Conversion.CTypeDynamic Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Overloads
| Name | Description |
|---|---|
| CTypeDynamic(Object, Type) |
Converteert een object naar het opgegeven type. |
| CTypeDynamic<TargetType>(Object) |
Converteert een object naar het opgegeven algemene type. |
CTypeDynamic(Object, Type)
Converteert een object naar het opgegeven type.
public:
static System::Object ^ CTypeDynamic(System::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
Parameters
- Expression
- Object
Het object dat moet worden geconverteerd.
- TargetType
- Type
Het type waarnaar het object moet worden geconverteerd.
Retouren
Een object waarvan het type tijdens runtime het aangevraagde doeltype is.
Voorbeelden
In het volgende voorbeeld wordt de CTypeDynamic methode gebruikt om een dynamisch object te converteren naar een tekenreeks met behulp van de conversie die is gedefinieerd door het dynamische object.
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
Opmerkingen
De CTypeDynamic methode converteert het object dat als parameter Expression wordt doorgegeven naar het type dat is opgegeven door de TargetType parameter. Als het object een dynamisch object is, past de CTypeDynamic methode beschikbare dynamische conversies toe.
De CTypeDynamic methode past dynamische conversies toe in overeenstemming met de conversiesemantiek die door het object zelf is gedefinieerd. Als een dynamisch object wordt overgenomen van DynamicObject, probeert de methode eerst de conversie uit te voeren met behulp van een door de CTypeDynamic gebruiker gedefinieerde statische conversie. Als de door de gebruiker gedefinieerde statische conversie mislukt, probeert de CTypeDynamic methode de conversie uit te voeren met behulp van dynamische conversies. Als een dynamisch object wordt geïmplementeerd IDynamicMetaObjectProvider, heeft de methode voorrang op dynamische conversies via door de CTypeDynamic gebruiker gedefinieerde statische conversies.
Zie ook
- TryConvert(ConvertBinder, Object)
- BindConvert(ConvertBinder)
- CTypeDynamic<TargetType>(Object)
- Werk met dynamische objecten (Visual Basic)
- Walkthrough: Dynamische objecten maken en gebruiken (C# en Visual Basic)
Van toepassing op
CTypeDynamic<TargetType>(Object)
Converteert een object naar het opgegeven algemene type.
public:
generic <typename TargetType>
static TargetType CTypeDynamic(System::Object ^ Expression);
public static TargetType CTypeDynamic<TargetType>(object Expression);
static member CTypeDynamic : obj -> 'argetType
Public Function CTypeDynamic(Of TargetType) (Expression As Object) As TargetType
Type parameters
- TargetType
Het type waarnaar het object moet worden geconverteerd.
Parameters
- Expression
- Object
Het object dat moet worden geconverteerd.
Retouren
Een object statisch getypt als het aangevraagde algemene type.
Voorbeelden
In het volgende voorbeeld wordt de CTypeDynamic methode gebruikt om een dynamisch object te converteren naar een tekenreeks met behulp van de conversie die is gedefinieerd door het dynamische object.
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
Opmerkingen
De CTypeDynamic methode converteert het object dat is doorgegeven als de Expression parameter naar het type dat is opgegeven door het type van de algemene parameter. Als het object een dynamisch object is, past de CTypeDynamic methode beschikbare dynamische conversies toe.
De CTypeDynamic methode past dynamische conversies toe in overeenstemming met de conversiesemantiek die door het object zelf is gedefinieerd. Als een dynamisch object wordt overgenomen van DynamicObject, probeert de methode eerst de conversie uit te voeren met behulp van een door de CTypeDynamic gebruiker gedefinieerde statische conversie. Als de door de gebruiker gedefinieerde statische conversie mislukt, probeert de CTypeDynamic methode de conversie uit te voeren met behulp van dynamische conversies. Als een dynamisch object wordt geïmplementeerd IDynamicMetaObjectProvider, heeft de methode voorrang op dynamische conversies via door de CTypeDynamic gebruiker gedefinieerde statische conversies.
Zie ook
- TryConvert(ConvertBinder, Object)
- BindConvert(ConvertBinder)
- CTypeDynamic(Object, Type)
- Werk met dynamische objecten (Visual Basic)
- Walkthrough: Dynamische objecten maken en gebruiken (C# en Visual Basic)