Udostępnij za pośrednictwem


Expression.Assign Method

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

Creates a BinaryExpression that represents an assignment operation.

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

Syntax

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

Parameters

Return Value

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

Remarks

The Assign expression copies a value for value types, and it copies a reference for reference types.

Examples

The following code example shows how to create an expression that represents an assignment operation.

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

' To demonstrate the assignment operation, create a variable.
Dim variableExpr As ParameterExpression = Expression.Variable(GetType(String), "sampleVar")

' This expression represents the assignment of a value
' to a variable expression.
' It copies a value for value types, and it
' copies a reference for reference types.
Dim assignExpr As Expression = Expression.Assign(
    variableExpr,
    Expression.Constant("Hello World!")
    )

' The block expression allows for executing several expressions sequentually.
' In this block, you pass the variable expression as a parameter,
' and then assign this parameter a value in the assign expression.
Dim blockExpr As Expression = Expression.Block(
      New ParameterExpression() {variableExpr}, assignExpr
      )

' Print the assign expression.
outputBlock.Text &= assignExpr.ToString() & vbCrLf

' The following statement first creates an expression tree,
' then compiles it, and then executes it. 
outputBlock.Text &= Expression.Lambda(Of Func(Of String))(blockExpr).Compile()() & vbCrLf

' This code example produces the following output:
'
' (sampleVar = "Hello World!")
' Hello World!
       // Add the following directive to your file:
       // using System.Linq.Expressions;  

       // To demonstrate the assignment operation, we create a variable.
       ParameterExpression variableExpr = Expression.Variable(typeof(String), "sampleVar");

       // This expression represents the assignment of a value
       // to a variable expression.
       // It copies a value for value types, and
       // copies a reference for reference types.
       Expression assignExpr = Expression.Assign(
           variableExpr,
           Expression.Constant("Hello World!")
           );

       // The block expression allows for executing several expressions sequentually.
       // In this block, we pass the variable expression as a parameter,
       // and then assign this parameter a value in the assign expression.
       Expression blockExpr = Expression.Block(
           new ParameterExpression[] { variableExpr },
           assignExpr
           );

       // Print out the assign expression.
       outputBlock.Text += assignExpr.ToString() + "\n";

       // The following statement first creates an expression tree,
       // then compiles it, and then executes it.  
       outputBlock.Text += Expression.Lambda<Func<String>>(blockExpr).Compile()() + "\n";

       // This code example produces the following output:
       //
       // (sampleVar = "Hello World!")
       // Hello World!

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.