Поделиться через


Expression.AddAssign Method (Expression, Expression)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Creates a BinaryExpression that represents an addition assignment operation that does not have overflow checking.

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

Syntax

'Declaration
Public Shared Function AddAssign ( _
    left As Expression, _
    right As Expression _
) As BinaryExpression
public static BinaryExpression AddAssign(
    Expression left,
    Expression right
)

Parameters

Return Value

Type: System.Linq.Expressions.BinaryExpression
A BinaryExpression that has the NodeType property equal to AddAssign and the Left and Right properties set to the specified values.

Examples

The following code example shows how to create an expression that adds a value to an integer variable and then assigns the result of the operation to the variable.

' Add the following directive to your file:
' Imports System.Linq.Expressions 

' The parameter expression is used to create a variable.
Dim variableExpr As ParameterExpression = Expression.Variable(GetType(Integer), "sampleVar")

' The block expression enables you to execute several expressions sequentually.
' In this block, the variable is first initialized with 1. 
' Then the AddAssign method adds 2 to the variable and assigns the result to the variable.
Dim addAssignExpr As BlockExpression = Expression.Block(
    New ParameterExpression() {variableExpr},
    Expression.Assign(variableExpr, Expression.Constant(1)),
    Expression.AddAssign(
        variableExpr,
        Expression.Constant(2)
    )
)

' Print the expression from the block expression.
outputBlock.Text &= "The expressions from the block expression:" & vbCrLf
For Each expr As Expression In addAssignExpr.Expressions
    outputBlock.Text &= expr.ToString() & vbCrLf
Next

outputBlock.Text &= "The result of executing the expression tree:" & vbCrLf
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
outputBlock.Text &= Expression.Lambda(Of Func(Of Integer))(addAssignExpr).Compile()() & vbCrLf

' This code example produces the following output:
'
' The expressions from the block expression:
' (sampleVar = 1)
' (sampleVar += 2)

' The result of executing the expression tree:
' 3
// Add the following directive to your file:
// using System.Linq.Expressions;

// The Parameter expression is used to create a variable.
ParameterExpression variableExpr = Expression.Variable(typeof(int), "sampleVar");

// The block expression enables you to execute several expressions sequentually.
// In this bloc, the variable is first initialized with 1. 
// Then the AddAssign method adds 2 to the variable and assigns the result to the variable.
BlockExpression addAssignExpr = Expression.Block(
    new ParameterExpression[] { variableExpr },
    Expression.Assign(variableExpr, Expression.Constant(1)),
    Expression.AddAssign(
        variableExpr,
        Expression.Constant(2)
    )
);

// Print out the expression from the block expression.
outputBlock.Text += "The expressions from the block expression:" + "\n";
foreach (var expr in addAssignExpr.Expressions)
   outputBlock.Text += expr.ToString() + "\n";

outputBlock.Text += "The result of executing the expression tree:" + "\n";
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
outputBlock.Text += Expression.Lambda<Func<int>>(addAssignExpr).Compile()() + "\n";

// This code example produces the following output:
//
// The expressions from the block expression:
// (sampleVar = 1)
// (sampleVar += 2)

// The result of executing the expression tree:
// 3

Version Information

Silverlight

Supported in: 5, 4

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.