Expression.Block Metod

Definition

Skapar en BlockExpression.

Överlagringar

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

Skapar en BlockExpression som innehåller de angivna variablerna och uttrycken.

Block(Expression, Expression, Expression)

Skapar ett BlockExpression som innehåller tre uttryck och inte har några variabler.

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

Skapar ett BlockExpression som innehåller fem uttryck och som inte har några variabler.

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

Skapar en BlockExpression som innehåller de angivna variablerna och uttrycken.

Block(Type, Expression[])

Skapar en BlockExpression som innehåller de givna uttrycken, har inga variabler och har en specifik resultattyp.

Block(Expression, Expression, Expression, Expression)

Skapar ett BlockExpression som innehåller fyra uttryck och inte har några variabler.

Block(Expression, Expression)

Skapar ett BlockExpression som innehåller två uttryck och inte har några variabler.

Block(IEnumerable<ParameterExpression>, Expression[])

Skapar en BlockExpression som innehåller de angivna variablerna och uttrycken.

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

Skapar en BlockExpression som innehåller de angivna variablerna och uttrycken.

Block(Expression[])

Skapar ett BlockExpression som innehåller de givna uttrycken och inte har några variabler.

Block(IEnumerable<Expression>)

Skapar ett BlockExpression som innehåller de givna uttrycken och inte har några variabler.

Block(Type, IEnumerable<Expression>)

Skapar en BlockExpression som innehåller de givna uttrycken, har inga variabler och har en specifik resultattyp.

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

Skapar en BlockExpression som innehåller de angivna variablerna och uttrycken.

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

Parametrar

type
Type

Blockets resultattyp.

variables
IEnumerable<ParameterExpression>

Variablerna i blocket.

expressions
IEnumerable<Expression>

Uttrycken i blocket.

Returer

Den skapade BlockExpression.

Gäller för

Block(Expression, Expression, Expression)

Skapar ett BlockExpression som innehåller tre uttryck och inte har några variabler.

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

Parametrar

arg0
Expression

Det första uttrycket i blocket.

arg1
Expression

Det andra uttrycket i blocket.

arg2
Expression

Det tredje uttrycket i blocket.

Returer

Den skapade BlockExpression.

Kommentarer

När blockuttrycket körs returneras värdet för det sista uttrycket i blocket.

Gäller för

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

Skapar ett BlockExpression som innehåller fem uttryck och som inte har några variabler.

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

Parametrar

arg0
Expression

Det första uttrycket i blocket.

arg1
Expression

Det andra uttrycket i blocket.

arg2
Expression

Det tredje uttrycket i blocket.

arg3
Expression

Det fjärde uttrycket i blocket.

arg4
Expression

Det femte uttrycket i blocket.

Returer

Den skapade BlockExpression.

Kommentarer

När blockuttrycket körs returneras värdet för det sista uttrycket i blocket.

Gäller för

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

Skapar en BlockExpression som innehåller de angivna variablerna och uttrycken.

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

Parametrar

type
Type

Blockets resultattyp.

variables
IEnumerable<ParameterExpression>

Variablerna i blocket.

expressions
Expression[]

Uttrycken i blocket.

Returer

Den skapade BlockExpression.

Gäller för

Block(Type, Expression[])

Skapar en BlockExpression som innehåller de givna uttrycken, har inga variabler och har en specifik resultattyp.

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

Parametrar

type
Type

Blockets resultattyp.

expressions
Expression[]

Uttrycken i blocket.

Returer

Den skapade BlockExpression.

Gäller för

Block(Expression, Expression, Expression, Expression)

Skapar ett BlockExpression som innehåller fyra uttryck och inte har några variabler.

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

Parametrar

arg0
Expression

Det första uttrycket i blocket.

arg1
Expression

Det andra uttrycket i blocket.

arg2
Expression

Det tredje uttrycket i blocket.

arg3
Expression

Det fjärde uttrycket i blocket.

Returer

Den skapade BlockExpression.

Kommentarer

När blockuttrycket körs returneras värdet för det sista uttrycket i blocket.

Gäller för

Block(Expression, Expression)

Skapar ett BlockExpression som innehåller två uttryck och inte har några variabler.

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

Parametrar

arg0
Expression

Det första uttrycket i blocket.

arg1
Expression

Det andra uttrycket i blocket.

Returer

Den skapade BlockExpression.

Kommentarer

När blockuttrycket körs returneras värdet för det sista uttrycket i blocket.

Gäller för

Block(IEnumerable<ParameterExpression>, Expression[])

Skapar en BlockExpression som innehåller de angivna variablerna och uttrycken.

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

Parametrar

variables
IEnumerable<ParameterExpression>

Variablerna i blocket.

expressions
Expression[]

Uttrycken i blocket.

Returer

Den skapade BlockExpression.

Kommentarer

När blockuttrycket körs returneras värdet för det sista uttrycket i blocket.

Gäller för

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

Skapar en BlockExpression som innehåller de angivna variablerna och uttrycken.

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

Parametrar

variables
IEnumerable<ParameterExpression>

Variablerna i blocket.

expressions
IEnumerable<Expression>

Uttrycken i blocket.

Returer

Den skapade BlockExpression.

Exempel

Följande kodexempel visar hur du skickar en parameter till ett blockuttryck och bearbetar den här parametern inom ett 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

Kommentarer

När blockuttrycket körs returneras värdet för det sista uttrycket i blocket.

Gäller för

Block(Expression[])

Skapar ett BlockExpression som innehåller de givna uttrycken och inte har några variabler.

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

Parametrar

expressions
Expression[]

Uttrycken i blocket.

Returer

Den skapade BlockExpression.

Exempel

I följande kodexempel visas hur du skapar ett blockuttryck. Blockuttrycket består av två MethodCallExpression objekt och ett 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

Kommentarer

När blockuttrycket körs returneras värdet för det sista uttrycket i blocket.

Gäller för

Block(IEnumerable<Expression>)

Skapar ett BlockExpression som innehåller de givna uttrycken och inte har några variabler.

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

Parametrar

expressions
IEnumerable<Expression>

Uttrycken i blocket.

Returer

Den skapade BlockExpression.

Kommentarer

När blockuttrycket körs returneras värdet för det sista uttrycket i blocket.

Gäller för

Block(Type, IEnumerable<Expression>)

Skapar en BlockExpression som innehåller de givna uttrycken, har inga variabler och har en specifik resultattyp.

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

Parametrar

type
Type

Blockets resultattyp.

expressions
IEnumerable<Expression>

Uttrycken i blocket.

Returer

Den skapade BlockExpression.

Gäller för