Conversion.CTypeDynamic Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přetížení
| Name | Description |
|---|---|
| CTypeDynamic(Object, Type) |
Převede objekt na zadaný typ. |
| CTypeDynamic<TargetType>(Object) |
Převede objekt na zadaný obecný typ. |
CTypeDynamic(Object, Type)
- Zdroj:
- Conversion.vb
- Zdroj:
- Conversion.vb
- Zdroj:
- Conversion.vb
- Zdroj:
- Conversion.vb
- Zdroj:
- Conversion.vb
Převede objekt na zadaný typ.
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
Parametry
- Expression
- Object
Objekt, který chcete převést.
- TargetType
- Type
Typ, na který chcete objekt převést.
Návraty
Objekt, jehož typ za běhu je požadovaný cílový typ.
- Atributy
Příklady
Následující příklad používá metodu CTypeDynamic k převodu dynamického objektu na řetězec pomocí převodu definovaného dynamickým objektem.
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
Poznámky
Metoda CTypeDynamic převede objekt předaný jako Expression parametr na typ určený parametrem TargetType . Pokud je objekt dynamickým objektem, použije CTypeDynamic metoda dostupné dynamické převody.
Metoda CTypeDynamic používá dynamické převody v souladu s sémantikou převodu definovanou samotným objektem. Pokud dynamický objekt dědí z DynamicObject, CTypeDynamic metoda se nejprve pokusí provést převod pomocí uživatelem definovaného statického převodu. Pokud uživatelem definovaný statický převod selže, CTypeDynamic metoda se pokusí provést převod pomocí dynamických převodů. Pokud dynamický objekt implementuje IDynamicMetaObjectProvider, CTypeDynamic metoda dává přednost dynamickým převodům před uživatelem definovanými statickými převody.
Viz také
- TryConvert(ConvertBinder, Object)
- BindConvert(ConvertBinder)
- CTypeDynamic<TargetType>(Object)
- Working with Dynamic Objects (Visual Basic)
- Walkthrough: Vytváření a používání dynamických objektů (C# a Visual Basic)
Platí pro
CTypeDynamic<TargetType>(Object)
- Zdroj:
- Conversion.vb
- Zdroj:
- Conversion.vb
- Zdroj:
- Conversion.vb
- Zdroj:
- Conversion.vb
- Zdroj:
- Conversion.vb
Převede objekt na zadaný obecný typ.
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
Parametry typu
- TargetType
Typ, na který chcete objekt převést.
Parametry
- Expression
- Object
Objekt, který chcete převést.
Návraty
Objekt staticky zadaný jako požadovaný obecný typ.
- Atributy
Příklady
Následující příklad používá metodu CTypeDynamic k převodu dynamického objektu na řetězec pomocí převodu definovaného dynamickým objektem.
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
Poznámky
Metoda CTypeDynamic převede objekt předaný jako Expression parametr na typ určený typem obecného parametru. Pokud je objekt dynamickým objektem, použije CTypeDynamic metoda dostupné dynamické převody.
Metoda CTypeDynamic používá dynamické převody v souladu s sémantikou převodu definovanou samotným objektem. Pokud dynamický objekt dědí z DynamicObject, CTypeDynamic metoda se nejprve pokusí provést převod pomocí uživatelem definovaného statického převodu. Pokud uživatelem definovaný statický převod selže, CTypeDynamic metoda se pokusí provést převod pomocí dynamických převodů. Pokud dynamický objekt implementuje IDynamicMetaObjectProvider, CTypeDynamic metoda dává přednost dynamickým převodům před uživatelem definovanými statickými převody.
Viz také
- TryConvert(ConvertBinder, Object)
- BindConvert(ConvertBinder)
- CTypeDynamic(Object, Type)
- Working with Dynamic Objects (Visual Basic)
- Walkthrough: Vytváření a používání dynamických objektů (C# a Visual Basic)