Expression.Invoke Metod

Definition

Överlagringar

Name Description
Invoke(Expression, Expression[])

Skapar ett InvocationExpression som tillämpar ett ombuds- eller lambda-uttryck på en lista över argumentuttryck.

Invoke(Expression, IEnumerable<Expression>)

Skapar ett InvocationExpression som tillämpar ett ombuds- eller lambda-uttryck på en lista över argumentuttryck.

Invoke(Expression, Expression[])

Skapar ett InvocationExpression som tillämpar ett ombuds- eller lambda-uttryck på en lista över argumentuttryck.

public:
 static System::Linq::Expressions::InvocationExpression ^ Invoke(System::Linq::Expressions::Expression ^ expression, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.InvocationExpression Invoke(System.Linq.Expressions.Expression expression, params System.Linq.Expressions.Expression[] arguments);
static member Invoke : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.InvocationExpression
Public Shared Function Invoke (expression As Expression, ParamArray arguments As Expression()) As InvocationExpression

Parametrar

expression
Expression

Ett Expression som representerar det delegat- eller lambda-uttryck som ska tillämpas.

arguments
Expression[]

En matris med Expression objekt som representerar argumenten som ombudet eller lambda-uttrycket tillämpas på.

Returer

En InvocationExpression som tillämpar det angivna delegat- eller lambda-uttrycket på de angivna argumenten.

Undantag

expression är null.

expression. Typen representerar inte någon ombudstyp eller en Expression<TDelegate>.

-eller-

Egenskapen Type för ett element i arguments kan inte tilldelas till typen av motsvarande parameter för ombudet som representeras av expression.

arguments innehåller inte samma antal element som listan över parametrar för ombudet som representeras av expression.

Exempel

I följande exempel visas hur du använder Invoke(Expression, Expression[]) metoden för att skapa ett InvocationExpression som representerar anropet av ett lambda-uttryck med angivna argument.

System.Linq.Expressions.Expression<Func<int, int, bool>> largeSumTest =
    (num1, num2) => (num1 + num2) > 1000;

// Create an InvocationExpression that represents applying
// the arguments '539' and '281' to the lambda expression 'largeSumTest'.
System.Linq.Expressions.InvocationExpression invocationExpression =
    System.Linq.Expressions.Expression.Invoke(
        largeSumTest,
        System.Linq.Expressions.Expression.Constant(539),
        System.Linq.Expressions.Expression.Constant(281));

Console.WriteLine(invocationExpression.ToString());

// This code produces the following output:
//
// Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)
Dim largeSumTest As System.Linq.Expressions.Expression(Of System.Func(Of Integer, Integer, Boolean)) = _
    Function(num1, num2) (num1 + num2) > 1000

' Create an InvocationExpression that represents applying
' the arguments '539' and '281' to the lambda expression 'largeSumTest'.
Dim invocationExpression As System.Linq.Expressions.InvocationExpression = _
    System.Linq.Expressions.Expression.Invoke( _
        largeSumTest, _
        System.Linq.Expressions.Expression.Constant(539), _
        System.Linq.Expressions.Expression.Constant(281))

Console.WriteLine(invocationExpression.ToString())

' This code produces the following output:
'
' Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)

Kommentarer

Egenskapen Type för resultatet InvocationExpression representerar returtypen för ombudet som representeras av expression. Typ.

Egenskapen Arguments för resultatet InvocationExpression är tom om arguments är null. Annars innehåller den samma element som arguments förutom att vissa av dessa Expression objekt kan citeras.

Note

Ett element anges endast om motsvarande parameter för ombudet som representeras av är av expression typen Expression. Citat innebär att elementet omsluts i en Quote nod. Den resulterande noden är en UnaryExpression vars Operand egenskap är elementet argumentsi .

Gäller för

Invoke(Expression, IEnumerable<Expression>)

Skapar ett InvocationExpression som tillämpar ett ombuds- eller lambda-uttryck på en lista över argumentuttryck.

public:
 static System::Linq::Expressions::InvocationExpression ^ Invoke(System::Linq::Expressions::Expression ^ expression, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.InvocationExpression Invoke(System.Linq.Expressions.Expression expression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
static member Invoke : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.InvocationExpression
Public Shared Function Invoke (expression As Expression, arguments As IEnumerable(Of Expression)) As InvocationExpression

Parametrar

expression
Expression

Ett Expression som representerar det delegat- eller lambda-uttryck som ska tillämpas på.

arguments
IEnumerable<Expression>

En IEnumerable<T> som innehåller Expression objekt som representerar argumenten som ombudet eller lambda-uttrycket tillämpas på.

Returer

En InvocationExpression som tillämpar det angivna delegat- eller lambda-uttrycket på de angivna argumenten.

Undantag

expression är null.

expression. Typen representerar inte någon ombudstyp eller en Expression<TDelegate>.

-eller-

Egenskapen Type för ett element i arguments kan inte tilldelas till typen av motsvarande parameter för ombudet som representeras av expression.

arguments innehåller inte samma antal element som listan över parametrar för ombudet som representeras av expression.

Exempel

I följande exempel visas hur du använder Invoke(Expression, Expression[]) metoden för att skapa ett InvocationExpression som representerar anropet av ett lambda-uttryck med angivna argument.

System.Linq.Expressions.Expression<Func<int, int, bool>> largeSumTest =
    (num1, num2) => (num1 + num2) > 1000;

// Create an InvocationExpression that represents applying
// the arguments '539' and '281' to the lambda expression 'largeSumTest'.
System.Linq.Expressions.InvocationExpression invocationExpression =
    System.Linq.Expressions.Expression.Invoke(
        largeSumTest,
        System.Linq.Expressions.Expression.Constant(539),
        System.Linq.Expressions.Expression.Constant(281));

Console.WriteLine(invocationExpression.ToString());

// This code produces the following output:
//
// Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)
Dim largeSumTest As System.Linq.Expressions.Expression(Of System.Func(Of Integer, Integer, Boolean)) = _
    Function(num1, num2) (num1 + num2) > 1000

' Create an InvocationExpression that represents applying
' the arguments '539' and '281' to the lambda expression 'largeSumTest'.
Dim invocationExpression As System.Linq.Expressions.InvocationExpression = _
    System.Linq.Expressions.Expression.Invoke( _
        largeSumTest, _
        System.Linq.Expressions.Expression.Constant(539), _
        System.Linq.Expressions.Expression.Constant(281))

Console.WriteLine(invocationExpression.ToString())

' This code produces the following output:
'
' Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)

Kommentarer

Egenskapen Type för resultatet InvocationExpression representerar returtypen för ombudet som representeras av expression. Typ.

Egenskapen Arguments för resultatet InvocationExpression är tom om arguments är null. Annars innehåller den samma element som arguments förutom att vissa av dessa Expression objekt kan citeras.

Note

Ett element anges endast om motsvarande parameter för ombudet som representeras av är av expression typen Expression. Citat innebär att elementet omsluts i en Quote nod. Den resulterande noden är en UnaryExpression vars Operand egenskap är elementet argumentsi .

Gäller för