Expression.Invoke Метод
В этой статье
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает InvocationExpression.
Invoke(Expression, Expression[]) |
Создает выражение InvocationExpression, применяющее делегат или лямбда-выражение к списку выражений аргумента. |
Invoke(Expression, IEnumerable<Expression>) |
Создает выражение InvocationExpression, применяющее делегат или лямбда-выражение к списку выражений аргумента. |
- Исходный код:
- 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
.Type не представляет тип делегата или 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 объектов могут быть заключены в кавычки.
Примечание
Элемент будет содержаться в кавычках, только если соответствующий параметр делегата, представленный , expression
имеет тип Expression. Кавыкание означает, что элемент заключен в Quote узел. Результирующий узел является , UnaryExpression свойство которого Operand является элементом arguments
.
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- Исходный код:
- 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
.Type не представляет тип делегата или 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 объектов могут быть заключены в кавычки.
Примечание
Элемент будет содержаться в кавычках, только если соответствующий параметр делегата, представленный , expression
имеет тип Expression. Кавыкание означает, что элемент заключен в Quote узел. Результирующий узел является , UnaryExpression свойство которого Operand является элементом arguments
.
Применяется к
.NET 9 и другие версии
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |