Expression.Invoke Метод

Определение

Создает InvocationExpression.Creates an InvocationExpression.

Перегрузки

Invoke(Expression, Expression[])

Создает выражение InvocationExpression, применяющее делегат или лямбда-выражение к списку выражений аргумента.Creates an InvocationExpression that applies a delegate or lambda expression to a list of argument expressions.

Invoke(Expression, IEnumerable<Expression>)

Создает выражение InvocationExpression, применяющее делегат или лямбда-выражение к списку выражений аргумента.Creates an InvocationExpression that applies a delegate or lambda expression to a list of argument expressions.

Invoke(Expression, Expression[])

Создает выражение InvocationExpression, применяющее делегат или лямбда-выражение к списку выражений аргумента.Creates an InvocationExpression that applies a delegate or lambda expression to a list of argument expressions.

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

Параметры

expression
Expression

Выражение Expression, представляющее делегат или лямбда-выражение для применения.An Expression that represents the delegate or lambda expression to be applied.

arguments
Expression[]

Массив объектов Expression, представляющих аргументы, к которым применяется делегат или лямбда-выражение.An array of Expression objects that represent the arguments that the delegate or lambda expression is applied to.

Возвраты

Выражение InvocationExpression, которое применяет заданный делегат или лямбда-выражение к предоставленным аргументам.An InvocationExpression that applies the specified delegate or lambda expression to the provided arguments.

Исключения

expressionnull.expression is null.

Тип expression.Type не представляет тип делегата или Expression<TDelegate>.expression.Type does not represent a delegate type or an Expression<TDelegate>.

- или --or- Свойство Type элемента arguments нельзя назначить для типа соответствующего параметра делегата, представленного параметром expression.The Type property of an element of arguments is not assignable to the type of the corresponding parameter of the delegate represented by expression.

arguments не содержит количество элементов, равное количеству списка параметров для делегата, представленного expression.arguments does not contain the same number of elements as the list of parameters for the delegate represented by expression.

Примеры

В следующем примере демонстрируется использование Invoke(Expression, Expression[]) метода для создания объекта InvocationExpression , представляющего вызов лямбда-выражения с заданными аргументами.The following example demonstrates how to use the Invoke(Expression, Expression[]) method to create an InvocationExpression that represents the invocation of a lambda expression with specified arguments.

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)

Комментарии

Свойство результирующего InvocationExpression объекта представляет тип возвращаемого значения expressionделегата, представленного. Type Тип.The Type property of the resulting InvocationExpression represents the return type of the delegate that is represented by expression.Type.

Свойство результирующего InvocationExpression объекта является пустым, если arguments имеет nullзначение. ArgumentsThe Arguments property of the resulting InvocationExpression is empty if arguments is null. В противном случае он содержит те же arguments элементы, что и за Expression исключением того, что некоторые из этих объектов могут быть заключены в кавычки.Otherwise, it contains the same elements as arguments except that some of these Expression objects may be quoted.

Примечание

Элемент будет заключен в кавычки, только если соответствующий параметр делегата, представленного expression аргументом, Expressionимеет тип.An element will be quoted only if the corresponding parameter of the delegate represented by expression is of type Expression. Заключения в кавычки означает, что элемент упаковывается в Quote узел.Quoting means the element is wrapped in a Quote node. Полученный узел — это UnaryExpression , Operand argumentsсвойство которого является элементом.The resulting node is a UnaryExpression whose Operand property is the element of arguments.

Invoke(Expression, IEnumerable<Expression>)

Создает выражение InvocationExpression, применяющее делегат или лямбда-выражение к списку выражений аргумента.Creates an InvocationExpression that applies a delegate or lambda expression to a list of argument expressions.

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

Параметры

expression
Expression

Выражение Expression, представляющее делегат или лямбда-выражение для применения.An Expression that represents the delegate or lambda expression to be applied to.

arguments
IEnumerable<Expression>

Интерфейс IEnumerable<T>, содержащий объекты Expression, представляющие аргументы, к которым применяется делегат или лямбда-выражение.An IEnumerable<T> that contains Expression objects that represent the arguments that the delegate or lambda expression is applied to.

Возвраты

Выражение InvocationExpression, которое применяет заданный делегат или лямбда-выражение к предоставленным аргументам.An InvocationExpression that applies the specified delegate or lambda expression to the provided arguments.

Исключения

expressionnull.expression is null.

Тип expression.Type не представляет тип делегата или Expression<TDelegate>.expression.Type does not represent a delegate type or an Expression<TDelegate>.

- или --or- Свойство Type элемента arguments нельзя назначить для типа соответствующего параметра делегата, представленного параметром expression.The Type property of an element of arguments is not assignable to the type of the corresponding parameter of the delegate represented by expression.

arguments не содержит количество элементов, равное количеству списка параметров для делегата, представленного expression.arguments does not contain the same number of elements as the list of parameters for the delegate represented by expression.

Примеры

В следующем примере демонстрируется использование Invoke(Expression, Expression[]) метода для создания объекта InvocationExpression , представляющего вызов лямбда-выражения с заданными аргументами.The following example demonstrates how to use the Invoke(Expression, Expression[]) method to create an InvocationExpression that represents the invocation of a lambda expression with specified arguments.

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)

Комментарии

Свойство результирующего InvocationExpression объекта представляет тип возвращаемого значения expressionделегата, представленного. Type Тип.The Type property of the resulting InvocationExpression represents the return type of the delegate that is represented by expression.Type.

Свойство результирующего InvocationExpression объекта является пустым, если arguments имеет nullзначение. ArgumentsThe Arguments property of the resulting InvocationExpression is empty if arguments is null. В противном случае он содержит те же arguments элементы, что и за Expression исключением того, что некоторые из этих объектов могут быть заключены в кавычки.Otherwise, it contains the same elements as arguments except that some of these Expression objects may be quoted.

Примечание

Элемент будет заключен в кавычки, только если соответствующий параметр делегата, представленного expression аргументом, Expressionимеет тип.An element will be quoted only if the corresponding parameter of the delegate represented by expression is of type Expression. Заключения в кавычки означает, что элемент упаковывается в Quote узел.Quoting means the element is wrapped in a Quote node. Полученный узел — это UnaryExpression , Operand argumentsсвойство которого является элементом.The resulting node is a UnaryExpression whose Operand property is the element of arguments.

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