InvocationExpression Класс

Определение

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

public ref class InvocationExpression sealed : System::Linq::Expressions::Expression, System::Linq::Expressions::IArgumentProvider
public sealed class InvocationExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider
type InvocationExpression = class
    inherit Expression
    interface IArgumentProvider
Public NotInheritable Class InvocationExpression
Inherits Expression
Implements IArgumentProvider
Наследование
InvocationExpression
Реализации

Примеры

В следующем примере создается объект InvocationExpression , представляющий вызов лямбда-выражения с указанными аргументами.The following example creates an InvocationExpression that represents invoking 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создания. InvokeUse the Invoke factory methods to create an InvocationExpression.

NodeType ОбъектInvocationExpression имеет значениеInvoke.The NodeType of an InvocationExpression is Invoke.

Свойства

Arguments

Получает аргументы, к которым применяется делегат или лямбда-выражение.Gets the arguments that the delegate or lambda expression is applied to.

CanReduce

Указывает, что узел можно сократить до более простого.Indicates that the node can be reduced to a simpler node. Если возвращается значение true, для получения сокращенной формы можно вызвать Reduce().If this returns true, Reduce() can be called to produce the reduced form.

(Унаследовано от Expression)
Expression

Получает делегата или лямбда-выражение для применения.Gets the delegate or lambda expression to be applied.

NodeType

Возвращает тип узла данного выражения.Returns the node type of this expression. При переопределении этого метода узлы расширения должны возвращать Extension.Extension nodes should return Extension when overriding this method.

Type

Получает статичный тип выражения, представленного этим выражением Expression.Gets the static type of the expression that this Expression represents.

Методы

Accept(ExpressionVisitor)

Отправляет в конкретный метод Visit для данного типа узла.Dispatches to the specific visit method for this node type. Например, объект MethodCallExpression вызывает метод VisitMethodCall(MethodCallExpression).For example, MethodCallExpression calls the VisitMethodCall(MethodCallExpression).

(Унаследовано от Expression)
Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
Reduce()

Преобразует данный узел в более простое выражение.Reduces this node to a simpler expression. Если CanReduce возвращает значение true, данный метод должен вернуть допустимое выражение.If CanReduce returns true, this should return a valid expression. Данный метод может вернуть другой узел, который нужно будет преобразовать еще раз.This method can return another node which itself must be reduced.

(Унаследовано от Expression)
ReduceAndCheck()

Преобразует данный узел в более простое выражение.Reduces this node to a simpler expression. Если CanReduce возвращает значение true, данный метод должен вернуть допустимое выражение.If CanReduce returns true, this should return a valid expression. Данный метод может вернуть другой узел, который нужно будет преобразовать еще раз.This method can return another node which itself must be reduced.

(Унаследовано от Expression)
ReduceExtensions()

Упрощает выражение до известного типа узла (не являющегося узлом Extension) или возвращает выражение, если оно имеет известный тип.Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type.

(Унаследовано от Expression)
ToString()

Возвращает текстовое представление текущего объекта Expression.Returns a textual representation of the Expression.

(Унаследовано от Expression)
Update(Expression, IEnumerable<Expression>)

Создает новое выражение, идентичное данному, но использующее предоставленные дочерние элементы.Creates a new expression that is like this one, but using the supplied children. Если все дочерние элементы идентичны, возвращается данное выражение.If all of the children are the same, it will return this expression.

VisitChildren(ExpressionVisitor)

Упрощает узел и вызывает делегат-посетитель для преобразованного выражения.Reduces the node and then calls the visitor delegate on the reduced expression. Данный метод создает исключение, если узел невозможно упростить.The method throws an exception if the node is not reducible.

(Унаследовано от Expression)

Явные реализации интерфейса

IArgumentProvider.ArgumentCount

Возвращает число аргументов для узла дерева выражения.Returns the number of arguments to the expression tree node. Не следует использовать этот член.You should not use this member. Он является открытым только из-за рефакторинга сборки и используется внутренне для оптимизации производительности.It is only public due to assembly refactoring, and it is used internally for performance optimizations.

IArgumentProvider.GetArgument(Int32)

Возвращает аргумент в индексе, создавая исключение, если индекс вне допустимых границ.Returns the argument at index, throwing if index is out of bounds. Не следует использовать этот член.You should not use this member. Он является открытым только из-за рефакторинга сборки и используется внутренне для оптимизации производительности.It is only public due to assembly refactoring, and it is used internally for performance optimizations.

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