Expression.Block Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine BlockExpression.
Überlädt
Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>) |
Erstellt ein BlockExpression, das die angegebenen Variablen und Ausdrücke enthält. |
Block(Expression, Expression, Expression) |
Erstellt ein BlockExpression, das drei Ausdrücke und keine Variablen enthält. |
Block(Expression, Expression, Expression, Expression, Expression) |
Erstellt ein BlockExpression, das fünf Ausdrücke und keine Variablen enthält. |
Block(Type, IEnumerable<ParameterExpression>, Expression[]) |
Erstellt ein BlockExpression, das die angegebenen Variablen und Ausdrücke enthält. |
Block(Type, Expression[]) |
Erstellt ein BlockExpression, das die angegebenen Ausdrücke enthält, nicht über Variablen verfügt und von einem bestimmten Ergebnistyp ist. |
Block(Expression, Expression, Expression, Expression) |
Erstellt ein BlockExpression, das vier Ausdrücke und keine Variablen enthält. |
Block(Expression, Expression) |
Erstellt eine BlockExpression, die zwei Ausdrücke und keine Variablen enthält. |
Block(IEnumerable<ParameterExpression>, Expression[]) |
Erstellt ein BlockExpression, das die angegebenen Variablen und Ausdrücke enthält. |
Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>) |
Erstellt ein BlockExpression, das die angegebenen Variablen und Ausdrücke enthält. |
Block(Expression[]) |
Erstellt eine BlockExpression, die die angegebenen Ausdrücke und keine Variablen enthält. |
Block(IEnumerable<Expression>) |
Erstellt eine BlockExpression, die die angegebenen Ausdrücke und keine Variablen enthält. |
Block(Type, IEnumerable<Expression>) |
Erstellt ein BlockExpression, das die angegebenen Ausdrücke enthält, nicht über Variablen verfügt und von einem bestimmten Ergebnistyp ist. |
Block(Type, IEnumerable<ParameterExpression>, IEnumerable<Expression>)
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt ein BlockExpression, das die angegebenen Variablen und Ausdrücke enthält.
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);
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
Parameter
- type
- Type
Der Ergebnistyp des Blocks.
- variables
- IEnumerable<ParameterExpression>
Die Variablen im Block.
- expressions
- IEnumerable<Expression>
Die Ausdrücke im Block.
Gibt zurück
Der erstellte BlockExpression.
Gilt für:
Block(Expression, Expression, Expression)
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt ein BlockExpression, das drei Ausdrücke und keine Variablen enthält.
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
Parameter
- arg0
- Expression
Der erste Ausdruck im Block.
- arg1
- Expression
Der zweite Ausdruck im Block.
- arg2
- Expression
Der dritte Ausdruck im Block.
Gibt zurück
Der erstellte BlockExpression.
Hinweise
Wenn der Blockausdruck ausgeführt wird, wird der Wert des letzten Ausdrucks im Block zurückgegeben.
Gilt für:
Block(Expression, Expression, Expression, Expression, Expression)
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt ein BlockExpression, das fünf Ausdrücke und keine Variablen enthält.
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
Parameter
- arg0
- Expression
Der erste Ausdruck im Block.
- arg1
- Expression
Der zweite Ausdruck im Block.
- arg2
- Expression
Der dritte Ausdruck im Block.
- arg3
- Expression
Der vierte Ausdruck im Block.
- arg4
- Expression
Der fünfte Ausdruck im Block.
Gibt zurück
Der erstellte BlockExpression.
Hinweise
Wenn der Blockausdruck ausgeführt wird, wird der Wert des letzten Ausdrucks im Block zurückgegeben.
Gilt für:
Block(Type, IEnumerable<ParameterExpression>, Expression[])
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt ein BlockExpression, das die angegebenen Variablen und Ausdrücke enthält.
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);
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
Parameter
- type
- Type
Der Ergebnistyp des Blocks.
- variables
- IEnumerable<ParameterExpression>
Die Variablen im Block.
- expressions
- Expression[]
Die Ausdrücke im Block.
Gibt zurück
Der erstellte BlockExpression.
Gilt für:
Block(Type, Expression[])
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt ein BlockExpression, das die angegebenen Ausdrücke enthält, nicht über Variablen verfügt und von einem bestimmten Ergebnistyp ist.
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
Parameter
- type
- Type
Der Ergebnistyp des Blocks.
- expressions
- Expression[]
Die Ausdrücke im Block.
Gibt zurück
Der erstellte BlockExpression.
Gilt für:
Block(Expression, Expression, Expression, Expression)
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt ein BlockExpression, das vier Ausdrücke und keine Variablen enthält.
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
Parameter
- arg0
- Expression
Der erste Ausdruck im Block.
- arg1
- Expression
Der zweite Ausdruck im Block.
- arg2
- Expression
Der dritte Ausdruck im Block.
- arg3
- Expression
Der vierte Ausdruck im Block.
Gibt zurück
Der erstellte BlockExpression.
Hinweise
Wenn der Blockausdruck ausgeführt wird, wird der Wert des letzten Ausdrucks im Block zurückgegeben.
Gilt für:
Block(Expression, Expression)
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt eine BlockExpression, die zwei Ausdrücke und keine Variablen enthält.
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
Parameter
- arg0
- Expression
Der erste Ausdruck im Block.
- arg1
- Expression
Der zweite Ausdruck im Block.
Gibt zurück
Der erstellte BlockExpression.
Hinweise
Wenn der Blockausdruck ausgeführt wird, wird der Wert des letzten Ausdrucks im Block zurückgegeben.
Gilt für:
Block(IEnumerable<ParameterExpression>, Expression[])
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt ein BlockExpression, das die angegebenen Variablen und Ausdrücke enthält.
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);
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
Parameter
- variables
- IEnumerable<ParameterExpression>
Die Variablen im Block.
- expressions
- Expression[]
Die Ausdrücke im Block.
Gibt zurück
Der erstellte BlockExpression.
Hinweise
Wenn der Blockausdruck ausgeführt wird, wird der Wert des letzten Ausdrucks im Block zurückgegeben.
Gilt für:
Block(IEnumerable<ParameterExpression>, IEnumerable<Expression>)
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt ein BlockExpression, das die angegebenen Variablen und Ausdrücke enthält.
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);
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
Parameter
- variables
- IEnumerable<ParameterExpression>
Die Variablen im Block.
- expressions
- IEnumerable<Expression>
Die Ausdrücke im Block.
Gibt zurück
Der erstellte BlockExpression.
Beispiele
Das folgende Codebeispiel zeigt, wie Sie einen Parameter an einen Blockausdruck übergeben und diesen Parameter innerhalb eines Blocks verarbeiten.
// 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
Hinweise
Wenn der Blockausdruck ausgeführt wird, wird der Wert des letzten Ausdrucks im Block zurückgegeben.
Gilt für:
Block(Expression[])
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt eine BlockExpression, die die angegebenen Ausdrücke und keine Variablen enthält.
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
Parameter
- expressions
- Expression[]
Die Ausdrücke im Block.
Gibt zurück
Der erstellte BlockExpression.
Beispiele
Im folgenden Codebeispiel wird gezeigt, wie Sie einen Blockausdruck erstellen. Der Blockausdruck besteht aus zwei MethodCallExpression -Objekten und einem ConstantExpression -Objekt.
// 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
Hinweise
Wenn der Blockausdruck ausgeführt wird, wird der Wert des letzten Ausdrucks im Block zurückgegeben.
Gilt für:
Block(IEnumerable<Expression>)
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt eine BlockExpression, die die angegebenen Ausdrücke und keine Variablen enthält.
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
Parameter
- expressions
- IEnumerable<Expression>
Die Ausdrücke im Block.
Gibt zurück
Der erstellte BlockExpression.
Hinweise
Wenn der Blockausdruck ausgeführt wird, wird der Wert des letzten Ausdrucks im Block zurückgegeben.
Gilt für:
Block(Type, IEnumerable<Expression>)
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
- Quelle:
- BlockExpression.cs
Erstellt ein BlockExpression, das die angegebenen Ausdrücke enthält, nicht über Variablen verfügt und von einem bestimmten Ergebnistyp ist.
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
Parameter
- type
- Type
Der Ergebnistyp des Blocks.
- expressions
- IEnumerable<Expression>
Die Ausdrücke im Block.
Gibt zurück
Der erstellte BlockExpression.