Expression.Block Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee maak je een BlockExpression.
Overloads
| Name | Description |
|---|---|
| Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>) |
Hiermee maakt u een BlockExpression met de opgegeven variabelen en expressies. |
| Block(Expression, Expression, Expression) |
Hiermee maakt u een BlockExpression met drie expressies en heeft u geen variabelen. |
| Block(Expression, Expression, Expression, Expression, Expression) |
Hiermee maakt u een BlockExpression expressie die vijf expressies bevat en geen variabelen bevat. |
| Block(Type, IEnumerable<ParameterExpression>, Expression[]) |
Hiermee maakt u een BlockExpression met de opgegeven variabelen en expressies. |
| Block(Type, Expression[]) |
Hiermee maakt u een BlockExpression met de opgegeven expressies, heeft u geen variabelen en heeft u een specifiek resultaattype. |
| Block(Expression, Expression, Expression, Expression) |
Hiermee maakt u een BlockExpression met vier expressies en heeft u geen variabelen. |
| Block(Expression, Expression) |
Hiermee maakt u een BlockExpression expressie die twee expressies bevat en geen variabelen bevat. |
| Block(IEnumerable<ParameterExpression>, Expression[]) |
Hiermee maakt u een BlockExpression met de opgegeven variabelen en expressies. |
| Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>) |
Hiermee maakt u een BlockExpression met de opgegeven variabelen en expressies. |
| Block(Expression[]) |
Hiermee maakt u een BlockExpression met de opgegeven expressies en heeft u geen variabelen. |
| Block(IEnumerable<Expression>) |
Hiermee maakt u een BlockExpression met de opgegeven expressies en heeft u geen variabelen. |
| Block(Type, IEnumerable<Expression>) |
Hiermee maakt u een BlockExpression met de opgegeven expressies, heeft u geen variabelen en heeft u een specifiek resultaattype. |
Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>)
Hiermee maakt u een BlockExpression met de opgegeven variabelen en expressies.
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
Public Shared Function Block (type As Type, variables As IEnumerable(Of ParameterExpression), expressions As IEnumerable(Of Expression)) As BlockExpression
Parameters
- type
- Type
Het resultaattype van het blok.
- variables
- IEnumerable<ParameterExpression>
De variabelen in het blok.
- expressions
- IEnumerable<Expression>
De expressies in het blok.
Retouren
De gemaakte BlockExpression.
Van toepassing op
Block(Expression, Expression, Expression)
Hiermee maakt u een BlockExpression met drie expressies en heeft u geen variabelen.
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
Parameters
- arg0
- Expression
De eerste expressie in het blok.
- arg1
- Expression
De tweede expressie in het blok.
- arg2
- Expression
De derde expressie in het blok.
Retouren
De gemaakte BlockExpression.
Opmerkingen
Wanneer de blokexpressie wordt uitgevoerd, wordt de waarde van de laatste expressie in het blok geretourneerd.
Van toepassing op
Block(Expression, Expression, Expression, Expression, Expression)
Hiermee maakt u een BlockExpression expressie die vijf expressies bevat en geen variabelen bevat.
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
Parameters
- arg0
- Expression
De eerste expressie in het blok.
- arg1
- Expression
De tweede expressie in het blok.
- arg2
- Expression
De derde expressie in het blok.
- arg3
- Expression
De vierde expressie in het blok.
- arg4
- Expression
De vijfde expressie in het blok.
Retouren
De gemaakte BlockExpression.
Opmerkingen
Wanneer de blokexpressie wordt uitgevoerd, wordt de waarde van de laatste expressie in het blok geretourneerd.
Van toepassing op
Block(Type, IEnumerable<ParameterExpression>, Expression[])
Hiermee maakt u een BlockExpression met de opgegeven variabelen en expressies.
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
Public Shared Function Block (type As Type, variables As IEnumerable(Of ParameterExpression), ParamArray expressions As Expression()) As BlockExpression
Parameters
- type
- Type
Het resultaattype van het blok.
- variables
- IEnumerable<ParameterExpression>
De variabelen in het blok.
- expressions
- Expression[]
De expressies in het blok.
Retouren
De gemaakte BlockExpression.
Van toepassing op
Block(Type, Expression[])
Hiermee maakt u een BlockExpression met de opgegeven expressies, heeft u geen variabelen en heeft u een specifiek resultaattype.
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
Public Shared Function Block (type As Type, ParamArray expressions As Expression()) As BlockExpression
Parameters
- type
- Type
Het resultaattype van het blok.
- expressions
- Expression[]
De expressies in het blok.
Retouren
De gemaakte BlockExpression.
Van toepassing op
Block(Expression, Expression, Expression, Expression)
Hiermee maakt u een BlockExpression met vier expressies en heeft u geen variabelen.
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
Parameters
- arg0
- Expression
De eerste expressie in het blok.
- arg1
- Expression
De tweede expressie in het blok.
- arg2
- Expression
De derde expressie in het blok.
- arg3
- Expression
De vierde expressie in het blok.
Retouren
De gemaakte BlockExpression.
Opmerkingen
Wanneer de blokexpressie wordt uitgevoerd, wordt de waarde van de laatste expressie in het blok geretourneerd.
Van toepassing op
Block(Expression, Expression)
Hiermee maakt u een BlockExpression expressie die twee expressies bevat en geen variabelen bevat.
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
Parameters
- arg0
- Expression
De eerste expressie in het blok.
- arg1
- Expression
De tweede expressie in het blok.
Retouren
De gemaakte BlockExpression.
Opmerkingen
Wanneer de blokexpressie wordt uitgevoerd, wordt de waarde van de laatste expressie in het blok geretourneerd.
Van toepassing op
Block(IEnumerable<ParameterExpression>, Expression[])
Hiermee maakt u een BlockExpression met de opgegeven variabelen en expressies.
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
Parameters
- variables
- IEnumerable<ParameterExpression>
De variabelen in het blok.
- expressions
- Expression[]
De expressies in het blok.
Retouren
De gemaakte BlockExpression.
Opmerkingen
Wanneer de blokexpressie wordt uitgevoerd, wordt de waarde van de laatste expressie in het blok geretourneerd.
Van toepassing op
Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>)
Hiermee maakt u een BlockExpression met de opgegeven variabelen en expressies.
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
Parameters
- variables
- IEnumerable<ParameterExpression>
De variabelen in het blok.
- expressions
- IEnumerable<Expression>
De expressies in het blok.
Retouren
De gemaakte BlockExpression.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een parameter doorgeeft aan een blokexpressie en deze parameter binnen een blok verwerkt.
// 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
Opmerkingen
Wanneer de blokexpressie wordt uitgevoerd, wordt de waarde van de laatste expressie in het blok geretourneerd.
Van toepassing op
Block(Expression[])
Hiermee maakt u een BlockExpression met de opgegeven expressies en heeft u geen variabelen.
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
Parameters
- expressions
- Expression[]
De expressies in het blok.
Retouren
De gemaakte BlockExpression.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een blokexpressie maakt. De blokexpressie bestaat uit twee MethodCallExpression objecten en één 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
Opmerkingen
Wanneer de blokexpressie wordt uitgevoerd, wordt de waarde van de laatste expressie in het blok geretourneerd.
Van toepassing op
Block(IEnumerable<Expression>)
Hiermee maakt u een BlockExpression met de opgegeven expressies en heeft u geen variabelen.
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
Parameters
- expressions
- IEnumerable<Expression>
De expressies in het blok.
Retouren
De gemaakte BlockExpression.
Opmerkingen
Wanneer de blokexpressie wordt uitgevoerd, wordt de waarde van de laatste expressie in het blok geretourneerd.
Van toepassing op
Block(Type, IEnumerable<Expression>)
Hiermee maakt u een BlockExpression met de opgegeven expressies, heeft u geen variabelen en heeft u een specifiek resultaattype.
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
Public Shared Function Block (type As Type, expressions As IEnumerable(Of Expression)) As BlockExpression
Parameters
- type
- Type
Het resultaattype van het blok.
- expressions
- IEnumerable<Expression>
De expressies in het blok.
Retouren
De gemaakte BlockExpression.