Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Expression.Convert-Methode: (Expression, Type)

 

Veröffentlicht: Oktober 2016

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
Type: System.Linq.Expressions.Expression

Ein Expression, auf den die Operand-Eigenschaft festgelegt werden soll.

type
Type: System.Type

Ein Type, auf das die Type-Eigenschaft festgelegt werden soll.

Rückgabewert

Type: 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.

Exception Condition
ArgumentNullException

expression oder type ist null.

InvalidOperationException

Kein Konvertierungsoperator zwischen expression. Typ und type.

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

Die folgenden Regeln bestimmen die implementierende Methode für den Vorgang.

  • Wenn einer der beiden expression. Typ oder type ein benutzerdefinierten Typ, der einen implizite oder explizite Konvertierungsoperator definiert, ist die MethodInfo das darstellt, der Operator ist die implementierende Methode.

  • Andernfalls gilt:

    • Wenn beide expression. Typ und type darstellen, numerische oder boolesche Typen bzw. NULL-Werte zulässt oder NULL-Enumeration, die die implementierende Methode null.

    • Wenn einer der beiden expression. Typ oder type ist ein Verweistyp und ein explizites Boxing, unboxing oder verweiskonvertierung vorhanden ist, von expression. Geben Sie auf type, die implementierende Methode null.

Die implementierende Methode ist nicht null:

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

  • Eine oder beide der expression. Typ oder type ist ein Werttyp und die entsprechenden nicht auf NULL festlegbare Werttypen sind gleich der Argumenttyp und der Rückgabetyp der implementierenden Methode bzw. der Knoten transformiert.

Wenn die implementierende Methode null:

  • Wenn beide expression. Typ und type sind NULL-Werte zulässt, der Knoten nicht transformiert.

  • Andernfalls ist der Knoten transformiert.

Im folgenden Codebeispiel wird veranschaulicht, wie einen Ausdruck erstellt, der einen Vorgang vom Typ konvertiert darstellt.

// 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

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: