Freigeben über


System.Linq.Expressions.Expression.Add-Methoden

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Die Add-Methode gibt ein BinaryExpression zurück, bei dem die Method-Eigenschaft auf die umsetzende Methode festgelegt ist. Die Type Eigenschaft wird auf den Typ des Knotens festgelegt. Wenn der Knoten angehoben wird, sind die Eigenschaften IsLifted und IsLiftedToNull beide true. Andernfalls sind sie false. Die Conversion Eigenschaft ist null.

Die folgenden Informationen beschreiben die Implementierungsmethode, den Knotentyp und ob ein Knoten aufgehoben wird.

Implementieren der Methode

Die folgenden Regeln bestimmen die ausgewählte Implementierungsmethode für den Vorgang:

  • Wenn die Type Eigenschaft von left oder right einen benutzerdefinierten Typ darstellt, der den Additionsoperator überlädt, ist die MethodInfo Methode die implementierende Methode.
  • Andernfalls, wenn left. Typ und right. Typ sind numerische Typen, die Implementierungsmethode lautet null.

Knotentyp und gehobener versus nicht gehobener

Wenn die Implementierungsmethode nicht nullist:

  • Wenn left.Typ und right.Typ den entsprechenden Argumenttypen der Implementierungsmethode zugewiesen werden können, wird der Knoten nicht angehoben. Der Typ des Knotens ist der Rückgabetyp der Implementierungsmethode.

  • Wenn die folgenden beiden Bedingungen erfüllt sind, wird der Knoten aufgehoben, und der Typ des Knotens ist der nullable Typ, der dem Rückgabetyp der Implementierungsmethode entspricht:

    • left.Type und right.Type sind beide Werttypen, von denen mindestens einer ein Nullable-Typ ist, und die entsprechenden nicht-nullbaren Typen sind identisch mit den entsprechenden Argumenttypen der implementierenden Methode.
    • Der Rückgabetyp der Implementierungsmethode ist ein nicht nullwertbarer Werttyp.

Wenn die Implementierungsmethode lautet null:

  • Wenn left.Typ und right.Typ beide nicht-nullbar sind, ist der Knoten nicht aufgehoben. Der Typ des Knotens ist der Ergebnistyp des vordefinierten Additionsoperators.
  • Wenn left.Typ und right.Typ beide nullbar sind, wird der Knoten angehoben. Der Typ des Knotens ist der nullwerte Typ, der dem Ergebnistyp des vordefinierten Additionsoperators entspricht.