Поделиться через


Expression.Invoke Метод

Определение

Создает объект InvocationExpression.

Перегрузки

Имя Описание
Invoke(Expression, Expression[])

Создает выражение InvocationExpression , которое применяет делегат или лямбда-выражение к списку выражений аргументов.

Invoke(Expression, IEnumerable<Expression>)

Создает выражение InvocationExpression , которое применяет делегат или лямбда-выражение к списку выражений аргументов.

Invoke(Expression, Expression[])

Исходный код:
InvocationExpression.cs
Исходный код:
InvocationExpression.cs
Исходный код:
InvocationExpression.cs
Исходный код:
InvocationExpression.cs
Исходный код:
InvocationExpression.cs

Создает выражение InvocationExpression , которое применяет делегат или лямбда-выражение к списку выражений аргументов.

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

Параметры

expression
Expression

Объект, Expression представляющий примененное делегат или лямбда-выражение.

arguments
Expression[]

Массив Expression объектов, представляющих аргументы, к которым применяется делегат или лямбда-выражение.

Возвращаемое значение

Выражение InvocationExpression , которое применяет указанный делегат или лямбда-выражение к предоставленным аргументам.

Исключения

expression равно null.

expression. Тип не представляет тип делегата или тип Expression<TDelegate>.

–или–

Type Свойство элемента arguments не присваивается типу соответствующего параметра делегата, представленного expression.

arguments не содержит то же количество элементов, что и список параметров делегата, представленного expression.

Примеры

В следующем примере показано, как использовать Invoke(Expression, Expression[]) метод для создания InvocationExpression объекта, представляющего вызов лямбда-выражения с указанными аргументами.

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)

Комментарии

Свойство Type результирующего InvocationExpression элемента представляет возвращаемый тип делегата, представленного expression. Тип.

Свойство Arguments результирующего InvocationExpression объекта пусто, если arguments имеет значение null. В противном случае он содержит те же элементы, что arguments и некоторые из этих Expressionобъектов.

Замечание

Элемент будет кавычек только в том случае, если соответствующий параметр делегата представлен типом expressionExpression. Кавыкание означает, что элемент упаковывается в Quote узел. Результирующий узел — это UnaryExpression свойство, свойство которого Operandargumentsявляется элементом .

Применяется к

Invoke(Expression, IEnumerable<Expression>)

Исходный код:
InvocationExpression.cs
Исходный код:
InvocationExpression.cs
Исходный код:
InvocationExpression.cs
Исходный код:
InvocationExpression.cs
Исходный код:
InvocationExpression.cs

Создает выражение InvocationExpression , которое применяет делегат или лямбда-выражение к списку выражений аргументов.

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

Параметры

expression
Expression

Объект, Expression представляющий делегат или лямбда-выражение, к которому следует применить.

arguments
IEnumerable<Expression>

Объект IEnumerable<T> , содержащий Expression объекты, представляющие аргументы, к которым применяется делегат или лямбда-выражение.

Возвращаемое значение

Выражение InvocationExpression , которое применяет указанный делегат или лямбда-выражение к предоставленным аргументам.

Исключения

expression равно null.

expression. Тип не представляет тип делегата или тип Expression<TDelegate>.

–или–

Type Свойство элемента arguments не присваивается типу соответствующего параметра делегата, представленного expression.

arguments не содержит то же количество элементов, что и список параметров делегата, представленного expression.

Примеры

В следующем примере показано, как использовать Invoke(Expression, Expression[]) метод для создания InvocationExpression объекта, представляющего вызов лямбда-выражения с указанными аргументами.

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)

Комментарии

Свойство Type результирующего InvocationExpression элемента представляет возвращаемый тип делегата, представленного expression. Тип.

Свойство Arguments результирующего InvocationExpression объекта пусто, если arguments имеет значение null. В противном случае он содержит те же элементы, что arguments и некоторые из этих Expressionобъектов.

Замечание

Элемент будет кавычек только в том случае, если соответствующий параметр делегата представлен типом expressionExpression. Кавыкание означает, что элемент упаковывается в Quote узел. Результирующий узел — это UnaryExpression свойство, свойство которого Operandargumentsявляется элементом .

Применяется к