Expression.Block Expression.Block Expression.Block Expression.Block Method

定義

BlockExpression を作成します。Creates a BlockExpression.

オーバーロード

Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>) Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>) Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>)

指定された変数および式を含む BlockExpression を作成します。Creates a BlockExpression that contains the given variables and expressions.

Block(Expression, Expression, Expression) Block(Expression, Expression, Expression) Block(Expression, Expression, Expression) Block(Expression, Expression, Expression)

3 つの式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains three expressions and has no variables.

Block(Expression, Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression, Expression)

5 つの式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains five expressions and has no variables.

Block(Type, IEnumerable<ParameterExpression>, Expression[]) Block(Type, IEnumerable<ParameterExpression>, Expression[]) Block(Type, IEnumerable<ParameterExpression>, Expression[])

指定された変数および式を含む BlockExpression を作成します。Creates a BlockExpression that contains the given variables and expressions.

Block(Type, Expression[]) Block(Type, Expression[]) Block(Type, Expression[])

指定された式を含み、変数を含まず、特定の結果の型を持つ BlockExpression を作成します。Creates a BlockExpression that contains the given expressions, has no variables and has specific result type.

Block(Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression)

4 つの式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains four expressions and has no variables.

Block(Expression, Expression) Block(Expression, Expression) Block(Expression, Expression) Block(Expression, Expression)

2 つの式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains two expressions and has no variables.

Block(IEnumerable<ParameterExpression>, Expression[]) Block(IEnumerable<ParameterExpression>, Expression[]) Block(IEnumerable<ParameterExpression>, Expression[]) Block(IEnumerable<ParameterExpression>, Expression[])

指定された変数および式を含む BlockExpression を作成します。Creates a BlockExpression that contains the given variables and expressions.

Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>) Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>) Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>) Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>)

指定された変数および式を含む BlockExpression を作成します。Creates a BlockExpression that contains the given variables and expressions.

Block(Expression[]) Block(Expression[]) Block(Expression[]) Block(Expression[])

指定された式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains the given expressions and has no variables.

Block(IEnumerable<Expression>) Block(IEnumerable<Expression>) Block(IEnumerable<Expression>) Block(IEnumerable<Expression>)

指定された式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains the given expressions and has no variables.

Block(Type, IEnumerable<Expression>) Block(Type, IEnumerable<Expression>) Block(Type, IEnumerable<Expression>)

指定された式を含み、変数を含まず、特定の結果の型を持つ BlockExpression を作成します。Creates a BlockExpression that contains the given expressions, has no variables and has specific result type.

Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>) Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>) Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>)

指定された変数および式を含む BlockExpression を作成します。Creates a BlockExpression that contains the given variables and expressions.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(Type ^ type, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ variables, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ expressions);
public static System.Linq.Expressions.BlockExpression Block (Type type, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> variables, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> expressions);
static member Block : Type * seq<System.Linq.Expressions.ParameterExpression> * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.BlockExpression

パラメーター

type
Type Type Type Type

ブロックの結果の型。The result type of the block.

variables
IEnumerable<ParameterExpression>

ブロック内の変数。The variables in the block.

expressions
IEnumerable<Expression>

ブロック内の式。The expressions in the block.

戻り値

Block(Expression, Expression, Expression) Block(Expression, Expression, Expression) Block(Expression, Expression, Expression) Block(Expression, Expression, Expression)

3 つの式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains three expressions and has no variables.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2);
public static System.Linq.Expressions.BlockExpression Block (System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
static member Block : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BlockExpression
Public Shared Function Block (arg0 As Expression, arg1 As Expression, arg2 As Expression) As BlockExpression

パラメーター

arg0
Expression Expression Expression Expression

ブロック内の 1 つ目の式。The first expression in the block.

arg1
Expression Expression Expression Expression

ブロック内の 2 つ目の式。The second expression in the block.

arg2
Expression Expression Expression Expression

ブロック内の 3 つ目の式。The third expression in the block.

戻り値

注釈

ブロック式が実行されたときに、ブロックの最後の式の値を返します。When the block expression is executed, it returns the value of the last expression in the block.

Block(Expression, Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression, Expression)

5 つの式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains five expressions and has no variables.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2, System::Linq::Expressions::Expression ^ arg3, System::Linq::Expressions::Expression ^ arg4);
public static System.Linq.Expressions.BlockExpression Block (System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3, System.Linq.Expressions.Expression arg4);
static member Block : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BlockExpression
Public Shared Function Block (arg0 As Expression, arg1 As Expression, arg2 As Expression, arg3 As Expression, arg4 As Expression) As BlockExpression

パラメーター

arg0
Expression Expression Expression Expression

ブロック内の 1 つ目の式。The first expression in the block.

arg1
Expression Expression Expression Expression

ブロック内の 2 つ目の式。The second expression in the block.

arg2
Expression Expression Expression Expression

ブロック内の 3 つ目の式。The third expression in the block.

arg3
Expression Expression Expression Expression

ブロック内の 4 つ目の式。The fourth expression in the block.

arg4
Expression Expression Expression Expression

ブロック内の 5 つ目の式。The fifth expression in the block.

戻り値

注釈

ブロック式が実行されたときに、ブロックの最後の式の値を返します。When the block expression is executed, it returns the value of the last expression in the block.

Block(Type, IEnumerable<ParameterExpression>, Expression[]) Block(Type, IEnumerable<ParameterExpression>, Expression[]) Block(Type, IEnumerable<ParameterExpression>, Expression[])

指定された変数および式を含む BlockExpression を作成します。Creates a BlockExpression that contains the given variables and expressions.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(Type ^ type, System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ variables, ... cli::array <System::Linq::Expressions::Expression ^> ^ expressions);
public static System.Linq.Expressions.BlockExpression Block (Type type, System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> variables, params System.Linq.Expressions.Expression[] expressions);
static member Block : Type * seq<System.Linq.Expressions.ParameterExpression> * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.BlockExpression

パラメーター

type
Type Type Type Type

ブロックの結果の型。The result type of the block.

variables
IEnumerable<ParameterExpression>

ブロック内の変数。The variables in the block.

expressions
Expression[]

ブロック内の式。The expressions in the block.

戻り値

Block(Type, Expression[]) Block(Type, Expression[]) Block(Type, Expression[])

指定された式を含み、変数を含まず、特定の結果の型を持つ BlockExpression を作成します。Creates a BlockExpression that contains the given expressions, has no variables and has specific result type.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(Type ^ type, ... cli::array <System::Linq::Expressions::Expression ^> ^ expressions);
public static System.Linq.Expressions.BlockExpression Block (Type type, params System.Linq.Expressions.Expression[] expressions);
static member Block : Type * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.BlockExpression

パラメーター

type
Type Type Type Type

ブロックの結果の型。The result type of the block.

expressions
Expression[]

ブロック内の式。The expressions in the block.

戻り値

Block(Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression) Block(Expression, Expression, Expression, Expression)

4 つの式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains four expressions and has no variables.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2, System::Linq::Expressions::Expression ^ arg3);
public static System.Linq.Expressions.BlockExpression Block (System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3);
static member Block : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BlockExpression
Public Shared Function Block (arg0 As Expression, arg1 As Expression, arg2 As Expression, arg3 As Expression) As BlockExpression

パラメーター

arg0
Expression Expression Expression Expression

ブロック内の 1 つ目の式。The first expression in the block.

arg1
Expression Expression Expression Expression

ブロック内の 2 つ目の式。The second expression in the block.

arg2
Expression Expression Expression Expression

ブロック内の 3 つ目の式。The third expression in the block.

arg3
Expression Expression Expression Expression

ブロック内の 4 つ目の式。The fourth expression in the block.

戻り値

注釈

ブロック式が実行されたときに、ブロックの最後の式の値を返します。When the block expression is executed, it returns the value of the last expression in the block.

Block(Expression, Expression) Block(Expression, Expression) Block(Expression, Expression) Block(Expression, Expression)

2 つの式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains two expressions and has no variables.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1);
public static System.Linq.Expressions.BlockExpression Block (System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
static member Block : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BlockExpression
Public Shared Function Block (arg0 As Expression, arg1 As Expression) As BlockExpression

パラメーター

arg0
Expression Expression Expression Expression

ブロック内の 1 つ目の式。The first expression in the block.

arg1
Expression Expression Expression Expression

ブロック内の 2 つ目の式。The second expression in the block.

戻り値

注釈

ブロック式が実行されたときに、ブロックの最後の式の値を返します。When the block expression is executed, it returns the value of the last expression in the block.

Block(IEnumerable<ParameterExpression>, Expression[]) Block(IEnumerable<ParameterExpression>, Expression[]) Block(IEnumerable<ParameterExpression>, Expression[]) Block(IEnumerable<ParameterExpression>, Expression[])

指定された変数および式を含む BlockExpression を作成します。Creates a BlockExpression that contains the given variables and expressions.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ variables, ... cli::array <System::Linq::Expressions::Expression ^> ^ expressions);
public static System.Linq.Expressions.BlockExpression Block (System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> variables, params System.Linq.Expressions.Expression[] expressions);
static member Block : seq<System.Linq.Expressions.ParameterExpression> * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.BlockExpression
Public Shared Function Block (variables As IEnumerable(Of ParameterExpression), ParamArray expressions As Expression()) As BlockExpression

パラメーター

variables
IEnumerable<ParameterExpression>

ブロック内の変数。The variables in the block.

expressions
Expression[]

ブロック内の式。The expressions in the block.

戻り値

注釈

ブロック式が実行されたときに、ブロックの最後の式の値を返します。When the block expression is executed, it returns the value of the last expression in the block.

Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>) Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>) Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>) Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>)

指定された変数および式を含む BlockExpression を作成します。Creates a BlockExpression that contains the given variables and expressions.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(System::Collections::Generic::IEnumerable<System::Linq::Expressions::ParameterExpression ^> ^ variables, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ expressions);
public static System.Linq.Expressions.BlockExpression Block (System.Collections.Generic.IEnumerable<System.Linq.Expressions.ParameterExpression> variables, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> expressions);
static member Block : seq<System.Linq.Expressions.ParameterExpression> * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.BlockExpression
Public Shared Function Block (variables As IEnumerable(Of ParameterExpression), expressions As IEnumerable(Of Expression)) As BlockExpression

パラメーター

variables
IEnumerable<ParameterExpression>

ブロック内の変数。The variables in the block.

expressions
IEnumerable<Expression>

ブロック内の式。The expressions 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

' Add the following directive to your file:
' Imports 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. 

Dim varExpr As ParameterExpression = Expression.Variable(GetType(Integer), "sampleVar")
Dim blockExpr As BlockExpression = Expression.Block(
    New ParameterExpression() {varExpr},
    Expression.Assign(varExpr, Expression.Constant(1)),
    Expression.Add(varExpr, Expression.Constant(5))
)

' Print the expressions from the block expression.

Console.WriteLine("The expressions from the block expression:")
For Each expr In blockExpr.Expressions
    Console.WriteLine(expr.ToString())
Next

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(Of Func(Of Integer))(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

注釈

ブロック式が実行されたときに、ブロックの最後の式の値を返します。When the block expression is executed, it returns the value of the last expression in the block.

Block(Expression[]) Block(Expression[]) Block(Expression[]) Block(Expression[])

指定された式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains the given expressions and has no variables.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(... cli::array <System::Linq::Expressions::Expression ^> ^ expressions);
public static System.Linq.Expressions.BlockExpression Block (params System.Linq.Expressions.Expression[] expressions);
static member Block : System.Linq.Expressions.Expression[] -> System.Linq.Expressions.BlockExpression
Public Shared Function Block (ParamArray expressions As Expression()) As BlockExpression

パラメーター

expressions
Expression[]

ブロック内の式。The expressions in the block.

戻り値

次のコード例では、ブロック式を作成する方法を示します。The following code example shows how to create a block expression. ブロック式から成る 2 つMethodCallExpressionオブジェクトと 1 つConstantExpressionオブジェクト。The block expression consists of two MethodCallExpression objects and one ConstantExpression object.

// Add the following directive to your file:
// using System.Linq.Expressions;  

// The block expression allows for executing several expressions sequentually.
// When the block expression is executed,
// it returns the value of the last expression in the sequence.
BlockExpression blockExpr = Expression.Block(
    Expression.Call(
        null,
        typeof(Console).GetMethod("Write", new Type[] { typeof(String) }),
        Expression.Constant("Hello ")
       ),
    Expression.Call(
        null,
        typeof(Console).GetMethod("WriteLine", new Type[] { typeof(String) }),
        Expression.Constant("World!")
        ),
    Expression.Constant(42)
);

Console.WriteLine("The result of executing the expression tree:");
// The following statement first creates an expression tree,
// then compiles it, and then executes it.           
var result = Expression.Lambda<Func<int>>(blockExpr).Compile()();

// 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());

// Print out the result of the tree execution.
Console.WriteLine("The return value of the block expression:");
Console.WriteLine(result);

// This code example produces the following output:
//
// The result of executing the expression tree:
// Hello World!

// The expressions from the block expression:
// Write("Hello ")
// WriteLine("World!")
// 42

// The return value of the block expression:
// 42
' Add the following directive to your file:
' Imports System.Linq.Expressions

' The block expression enables you to execute several expressions sequentually.
' When the block expression is executed,
' it returns the value of the last expression in the sequence.
Dim blockExpr As BlockExpression = Expression.Block(
    Expression.Call(
        Nothing,
        GetType(Console).GetMethod("Write", New Type() {GetType(String)}),
        Expression.Constant("Hello ")
       ),
    Expression.Call(
        Nothing,
        GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}),
        Expression.Constant("World!")
        ),
    Expression.Constant(42)
)

Console.WriteLine("The result of executing the expression tree:")
' The following statement first creates an expression tree,
' then compiles it, and then executes it.           
Dim result = Expression.Lambda(Of Func(Of Integer))(blockExpr).Compile()()

' Print the expressions from the block expression.
Console.WriteLine("The expressions from the block expression:")
For Each expr In blockExpr.Expressions
    Console.WriteLine(expr.ToString())
Next

' Print the result of the tree execution.
Console.WriteLine("The return value of the block expression:")
Console.WriteLine(result)

' This code example produces the following output:
'
' The result of executing the expression tree:
' Hello World!

' The expressions from the block expression:
' Write("Hello ")
' WriteLine("World!")
' 42

' The return value of the block expression:
' 42

注釈

ブロック式が実行されたときに、ブロックの最後の式の値を返します。When the block expression is executed, it returns the value of the last expression in the block.

Block(IEnumerable<Expression>) Block(IEnumerable<Expression>) Block(IEnumerable<Expression>) Block(IEnumerable<Expression>)

指定された式を含み、変数を含まない BlockExpression を作成します。Creates a BlockExpression that contains the given expressions and has no variables.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ expressions);
public static System.Linq.Expressions.BlockExpression Block (System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> expressions);
static member Block : seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.BlockExpression
Public Shared Function Block (expressions As IEnumerable(Of Expression)) As BlockExpression

パラメーター

expressions
IEnumerable<Expression>

ブロック内の式。The expressions in the block.

戻り値

注釈

ブロック式が実行されたときに、ブロックの最後の式の値を返します。When the block expression is executed, it returns the value of the last expression in the block.

Block(Type, IEnumerable<Expression>) Block(Type, IEnumerable<Expression>) Block(Type, IEnumerable<Expression>)

指定された式を含み、変数を含まず、特定の結果の型を持つ BlockExpression を作成します。Creates a BlockExpression that contains the given expressions, has no variables and has specific result type.

public:
 static System::Linq::Expressions::BlockExpression ^ Block(Type ^ type, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ expressions);
public static System.Linq.Expressions.BlockExpression Block (Type type, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> expressions);
static member Block : Type * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.BlockExpression

パラメーター

type
Type Type Type Type

ブロックの結果の型。The result type of the block.

expressions
IEnumerable<Expression>

ブロック内の式。The expressions in the block.

戻り値

適用対象