Expression.Block Method (IEnumerable<ParameterExpression>, IEnumerable<Expression>)
.NET Framework (current version)
Creates a BlockExpression that contains the given variables and expressions.
Assembly: System.Core (in System.Core.dll)
public static BlockExpression Block( IEnumerable<ParameterExpression> variables, IEnumerable<Expression> expressions )
Parameters
- variables
-
Type:
System.Collections.Generic.IEnumerable<ParameterExpression>
The variables in the block.
- expressions
-
Type:
System.Collections.Generic.IEnumerable<Expression>
The expressions in the block.
When the block expression is executed, it returns the value of the last expression in the block.
The following code example shows how to pass a parameter to a block expression and process this parameter within a block.
// Add the following directive to your file: // using System.Linq.Expressions; // This block has a parameter expression // that represents a variable within the block scope. // It assigns a value to the variable, // and then adds a constant to the assigned value. ParameterExpression varExpr = Expression.Variable(typeof(int), "sampleVar"); BlockExpression blockExpr = Expression.Block( new ParameterExpression[] { varExpr }, Expression.Assign(varExpr, Expression.Constant(1)), Expression.Add(varExpr, Expression.Constant(5)) ); // Print out the expressions from the block expression. Console.WriteLine("The expressions from the block expression:"); foreach (var expr in blockExpr.Expressions) Console.WriteLine(expr.ToString()); Console.WriteLine("The result of executing the expression tree:"); // The following statement first creates an expression tree, // then compiles it, and then executes it. Console.WriteLine( Expression.Lambda<Func<int>>(blockExpr).Compile()()); // This code example produces the following output: // The expressions from the block expression: // (sampleVar = 1) // (sampleVar + 5) // The result of executing the expression tree: // 6
Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 4.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 4.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Show: