Expression.Assign(Expression, Expression) 方法

定义

创建一个表示赋值运算的 BinaryExpression

public:
 static System::Linq::Expressions::BinaryExpression ^ Assign(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression Assign (System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member Assign : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function Assign (left As Expression, right As Expression) As BinaryExpression

参数

left
Expression

要将 Expression 属性设置为与其相等的 Left

right
Expression

要将 Expression 属性设置为与其相等的 Right

返回

一个 BinaryExpression,其 NodeType 属性等于 Assign,并且其 LeftRight 属性设置为指定值。

示例

下面的代码示例演示如何创建表示赋值操作的表达式。

// 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.
Console.WriteLine(assignExpr.ToString());

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

// This code example produces the following output:
//
// (sampleVar = "Hello World!")
// Hello World!
' 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.
Console.WriteLine(assignExpr.ToString())

' The following statement first creates an expression tree,
' then compiles it, and then executes it. 
Console.WriteLine(Expression.Lambda(Of Func(Of String))(blockExpr).Compile()())

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

注解

表达式 Assign 复制值类型的值,并复制引用类型的引用。

适用于