Conversion.CTypeDynamic Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Túlterhelések
| Name | Description |
|---|---|
| CTypeDynamic(Object, Type) |
Egy objektumot a megadott típussá alakít át. |
| CTypeDynamic<TargetType>(Object) |
Egy objektumot a megadott általános típussá alakít át. |
CTypeDynamic(Object, Type)
- Forrás:
- Conversion.vb
- Forrás:
- Conversion.vb
- Forrás:
- Conversion.vb
- Forrás:
- Conversion.vb
- Forrás:
- Conversion.vb
Egy objektumot a megadott típussá alakít át.
public:
static System::Object ^ CTypeDynamic(System::Object ^ Expression, Type ^ TargetType);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")]
public static object CTypeDynamic(object? Expression, Type TargetType);
public static object CTypeDynamic(object? Expression, Type TargetType);
public static object CTypeDynamic(object Expression, Type TargetType);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")>]
static member CTypeDynamic : obj * Type -> obj
static member CTypeDynamic : obj * Type -> obj
Public Function CTypeDynamic (Expression As Object, TargetType As Type) As Object
Paraméterek
- Expression
- Object
Az átalakítandó objektum.
- TargetType
- Type
Az objektum konvertálásának típusa.
Válaszok
Olyan objektum, amelynek futásidejű típusa a kért céltípus.
- Attribútumok
Példák
Az alábbi példa a CTypeDynamic dinamikus objektum sztringgé alakításához használja a dinamikus objektum által definiált átalakítást.
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
Megjegyzések
A CTypeDynamic metódus paraméterként Expression átadott objektumot a paraméter által TargetType megadott típusra konvertálja. Ha az objektum dinamikus objektum, a metódus az CTypeDynamic elérhető dinamikus konverziókat alkalmazza.
A CTypeDynamic metódus a maga az objektum által definiált konverziós szemantikának megfelelően alkalmazza a dinamikus konverziókat. Ha egy dinamikus objektum öröklődik, DynamicObjecta CTypeDynamic metódus először egy felhasználó által definiált statikus átalakítással próbálja meg végrehajtani az átalakítást. Ha a felhasználó által definiált statikus átalakítás meghiúsul, a CTypeDynamic metódus dinamikus átalakításokkal próbálja végrehajtani az átalakítást. Ha egy dinamikus objektum implementál IDynamicMetaObjectProvider, a metódus elsőbbséget élvez a CTypeDynamic felhasználó által definiált statikus átalakításokkal szemben.
Lásd még
- TryConvert(ConvertBinder, Object)
- BindConvert(ConvertBinder)
- CTypeDynamic<TargetType>(Object)
- Munka dinamikus objektumokkal (Visual Basic)
Átjárás: Dinamikus objektumok (C# és Visual Basic)
A következőre érvényes:
CTypeDynamic<TargetType>(Object)
- Forrás:
- Conversion.vb
- Forrás:
- Conversion.vb
- Forrás:
- Conversion.vb
- Forrás:
- Conversion.vb
- Forrás:
- Conversion.vb
Egy objektumot a megadott általános típussá alakít át.
public:
generic <typename TargetType>
static TargetType CTypeDynamic(System::Object ^ Expression);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")]
public static TargetType CTypeDynamic<TargetType>(object? Expression);
public static TargetType CTypeDynamic<TargetType>(object? Expression);
public static TargetType CTypeDynamic<TargetType>(object Expression);
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("The Expression's underlying type cannot be statically analyzed and its members may be trimmed")>]
static member CTypeDynamic : obj -> 'argetType
static member CTypeDynamic : obj -> 'argetType
Public Function CTypeDynamic(Of TargetType) (Expression As Object) As TargetType
Típusparaméterek
- TargetType
Az objektum konvertálásának típusa.
Paraméterek
- Expression
- Object
Az átalakítandó objektum.
Válaszok
Egy statikusan beírt objektum a kért általános típusként.
- Attribútumok
Példák
Az alábbi példa a CTypeDynamic dinamikus objektum sztringgé alakításához használja a dinamikus objektum által definiált átalakítást.
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
Megjegyzések
A CTypeDynamic metódus paraméterként Expression átadott objektumot az általános paraméter típusa által megadott típusra alakítja át. Ha az objektum dinamikus objektum, a metódus az CTypeDynamic elérhető dinamikus konverziókat alkalmazza.
A CTypeDynamic metódus a maga az objektum által definiált konverziós szemantikának megfelelően alkalmazza a dinamikus konverziókat. Ha egy dinamikus objektum öröklődik, DynamicObjecta CTypeDynamic metódus először egy felhasználó által definiált statikus átalakítással próbálja meg végrehajtani az átalakítást. Ha a felhasználó által definiált statikus átalakítás meghiúsul, a CTypeDynamic metódus dinamikus átalakításokkal próbálja végrehajtani az átalakítást. Ha egy dinamikus objektum implementál IDynamicMetaObjectProvider, a metódus elsőbbséget élvez a CTypeDynamic felhasználó által definiált statikus átalakításokkal szemben.
Lásd még
- TryConvert(ConvertBinder, Object)
- BindConvert(ConvertBinder)
- CTypeDynamic(Object, Type)
- Munka dinamikus objektumokkal (Visual Basic)
Átjárás: Dinamikus objektumok (C# és Visual Basic)