(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Expression.Convert-Methode (Expression, Type)

Erstellt ein UnaryExpression, das einen Typkonvertierungsvorgang darstellt.

Namespace:  System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static UnaryExpression Convert(
	Expression expression,
	Type type
)

Parameter

expression
Typ: System.Linq.Expressions.Expression
Eine Expression, auf die die Operand-Eigenschaft festgelegt werden soll.
type
Typ: System.Type
Ein Type, auf den die Type-Eigenschaft festgelegt werden soll.

Rückgabewert

Typ: System.Linq.Expressions.UnaryExpression
Ein UnaryExpression, bei dem die NodeType-Eigenschaft gleich Convert ist und die Operand-Eigenschaft sowie die Type-Eigenschaft auf die angegebenen Werte festgelegt sind.

AusnahmeBedingung
ArgumentNullException

expression oder type ist null.

InvalidOperationException

Zwischen expression.Type und type ist kein Konvertierungsoperator definiert.

Die Method-Eigenschaft der resultierenden UnaryExpression ist auf die implementierende Methode festgelegt. Die IsLiftedToNull-Eigenschaft ist false. Wenn der Knoten transformiert ist, ist IsLifted gleich true. Andernfalls ist der Wert false.

Bb292051.collapse_all(de-de,VS.110).gifImplementierende Methode

Die folgenden Regeln bestimmen die implementierende Methode für die Operation:

  • Wenn expression.Type oder type ein benutzerdefinierter Typ ist, der implizit oder explizit einen Konvertierungsoperator definiert, ist die MethodInfo, die diesen Operator darstellt, die implementierende Methode.

  • Andernfalls gilt:

    • Wenn sowohl expression.Type als auch type numerische oder boolesche Typen bzw. Enumerationstypen, die NULL-Werte zulassen oder nicht zulassen, darstellen, ist die implementierende Methode null.

    • Wenn expression.Type oder type ein Referenztyp ist und eine explizite Boxing-, Unboxing- oder Verweiskonvertierung von expression.Type in type vorhanden ist, ist die implementierende Methode null.

Bb292051.collapse_all(de-de,VS.110).gifTransformierte Knoten und nicht transformierte Knoten

Wenn die implementierende Methode nicht null ist, gilt Folgendes:

  • Wenn expression.Type dem Argumenttyp der implementierenden Methode zugeordnet werden kann und der Rückgabetyp der implementierenden Methode type zugeordnet werden kann, ist der Knoten nicht transformiert.

  • Wenn expression.Type oder type oder beide Werttypen sind, die NULL-Werte zulassen, und die entsprechenden Werttypen, die keine NULL-Werte zulassen, dem Argumenttyp bzw. dem Rückgabetyp der implementierenden Methode entsprechen, ist der Knoten nicht transformiert.

Wenn die implementierende Methode null ist, gilt Folgendes:

  • Wenn sowohl expression.Type als auch type keine NULL-Werte zulassen, ist der Knoten nicht transformiert.

  • Andernfalls ist der Knoten transformiert.

Im folgenden Codebeispiel wird gezeigt, wie ein Ausdruck, der eine Typkonvertierung darstellt, erstellt wird.


            // Add the following directive to your file:
            // using System.Linq.Expressions;  

            // This expression represents a type convertion operation. 
            Expression convertExpr = Expression.Convert(
                                        Expression.Constant(5.5),
                                        typeof(Int16)
                                    );

            // Print out the expression.
            Console.WriteLine(convertExpr.ToString());

            // The following statement first creates an expression tree,
            // then compiles it, and then executes it.
            Console.WriteLine(Expression.Lambda<Func<Int16>>(convertExpr).Compile()());

            // This code example produces the following output:
            //
            // Convert(5.5)
            // 5



.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft