System.Linq.Expressions.Expression.Add metoder

Anmärkning

Den här artikeln innehåller ytterligare kommentarer till referensdokumentationen för det här API:et.

Metoden Add returnerar en BinaryExpression som har Method egenskapen inställd på implementeringsmetoden. Egenskapen Type är inställd på nodens typ. Om noden lyfts är både IsLifted och IsLiftedToNull egenskaperna true. Annars är de false. Egenskapen Conversion är null.

Följande information beskriver implementeringsmetoden, nodtypen och om en nod lyfts.

Implementeringsmetod

Följande regler bestämmer den valda implementeringsmetoden för åtgärden:

  • Type Om egenskapen för antingen left eller right representerar en användardefinierad typ som överbelastar additionsoperatorn är den som representerar den MethodInfo metoden implementeringsmetoden.
  • Annars, om left.Typ och right.Typ är numeriska typer, är implementeringsmetoden null.

Nodtyp och lyft jämfört med icke-lyft

Om implementeringsmetoden inte nullär :

  • Om left.Typ och right.Typ kan tilldelas till motsvarande argumenttyper i implementeringsmetoden, lyfts noden inte. Nodens typ är returtypen för implementeringsmetoden.

  • Om följande två villkor uppfylls lyfts noden och nodens typ är den null-typ som motsvarar implementeringsmetodens returtyp:

    • left.Typ och right.Typ är båda värdetyper av vilka minst en är nullbar och vars motsvarande icke-nullbara typer är lika med de motsvarande argumenttyperna för den implementerande metoden.
    • Returtypen för implementeringsmetoden är en värdetyp som inte kan ogiltigförklaras.

Om implementeringsmetoden är null:

  • Om left.Type och right.Type båda är icke-nullable, lyfts noden inte. Nodens typ är resultattypen för den fördefinierade additionsoperatorn.
  • Om left.Typ och right.Typ båda är nullbara, lyfts noden. Nodens typ är den nullbara typen som motsvarar resultattypen för den fördefinierade additionsoperatorn.