AndAlso Methode (Expression, Expression)
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern
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.AndAlso-Methode (Expression, Expression)

 

Erstellt eine BinaryExpression, die einen bedingten AND-Vorgang darstellt, bei dem der zweite Operand nur ausgewertet wird, wenn der erste Operand als true ausgewertet wird.

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

public static BinaryExpression AndAlso(
	Expression left,
	Expression right
)

Parameter

left
Type: System.Linq.Expressions.Expression

Ein Expression, auf das die Left-Eigenschaft festgelegt werden soll.

right
Type: System.Linq.Expressions.Expression

Ein Expression, auf das die Right-Eigenschaft festgelegt werden soll.

Rückgabewert

Type: System.Linq.Expressions.BinaryExpression

Ein BinaryExpression, bei dem die NodeType-Eigenschaft gleich AndAlso ist und die Left-Eigenschaft sowie die Right-Eigenschaft auf die angegebenen Werte festgelegt sind.

Exception Condition
ArgumentNullException

left oder right ist null.

InvalidOperationException

Der bitweise AND Operator ist nicht definiert, für die left. Typ und right. Geben Sie ein.

- oder -

left. Typ und right. Type ist nicht denselben booleschen Typ.

Das resultierende BinaryExpression hat die Method -Eigenschaft auf die implementierende Methode festgelegt. Die Type -Eigenschaft auf den Typ des Knotens festgelegt ist. Wenn der Knoten transformiert wird, die IsLifted und IsLiftedToNull Eigenschaften sind beide true. Andernfalls sind sie false. Die Conversion-Eigenschaft ist null.

Die folgenden Informationen beschreiben die implementierende Methode und der Knotentyp und, ob ein Knoten transformiert wird.

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

  • Wenn die Type -Eigenschaft von left oder right einen benutzerdefinierten Typ darstellt, das bitweise überlädt AND -Operator, der MethodInfo die Methode darstellt, die implementierende Methode.

    System_CAPS_noteHinweis

    Der bedingte AND Operator kann nicht überladen werden, in c# oder Visual Basic. Jedoch das bedingte AND unter Verwendung des bitweisen Operator ausgewertet AND Operator. Folglich eine benutzerdefinierte Überladung des bitweisen AND Operator kann die implementierende Methode für diesen Knotentyp sein.

  • Andernfalls gilt: Wenn left. Typ und right. Type boolesche Typen, die die implementierende Methode null.

Die implementierende Methode ist nicht null:

  • Wenn left. Typ und right. Geben den entsprechenden Argumenttypen der implementierenden Methode zugeordnet werden können, ist der Knoten nicht transformiert. Der Typ des Knotens ist der Rückgabetyp der implementierenden Methode.

  • Wenn die beiden folgenden Bedingungen erfüllt sind, ist der Knoten transformiert und des Typs des Knotens Nullable-Typs, der in den Rückgabetyp der implementierenden Methode entspricht:

    • left. Typ und right. Sind beide Werttypen, von denen mindestens NULL ist zulässig, und die entsprechenden NULL-Typen sind gleich den entsprechenden Argumenttypen der implementierenden Methode.

    • Der Rückgabetyp der implementierenden Methode ist ein NULL-Wert.

Wenn die implementierende Methode null:

  • left. Typ und right. Denselben booleschen Typ sind.

  • Wenn left. Typ und right. Type NULL-Werte zulässt, der Knoten nicht transformiert. Der Typ des Knotens ist der Ergebnistyp des vordefinierten bedingten AND Operator.

  • Wenn left. Typ und right. Sind NULL-Werte zulässt, ist der Knoten transformiert. Der Typ des Knotens ist Nullable-Typs, der dem Ergebnistyp des vordefinierten bedingten entspricht AND Operator.

Im folgenden Codebeispiel wird veranschaulicht, wie ein Ausdruck führt, die eine logische und -Operation für seine zwei Operanden nur, wenn der erste Operand ergibt true.

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

// This expression perfroms a logical AND operation
// on its two arguments, but if the first argument is false,
// then the second arument is not evaluated.
// Both arguments must be of the boolean type.
Expression andAlsoExpr = Expression.AndAlso(
    Expression.Constant(false),
    Expression.Constant(true)
);

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

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

// This code example produces the following output:
//
// (False AndAlso True)
// False

Universal Windows Platform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portable Class Library
Unterstützt in: portable .NET platforms
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:
© 2016 Microsoft