InvocationExpression Classe

Definizione

Rappresenta un'espressione che applica un delegato o un'espressione lambda a un elenco di espressioni di argomento.

public ref class InvocationExpression sealed : System::Linq::Expressions::Expression, System::Linq::Expressions::IArgumentProvider
public ref class InvocationExpression sealed : System::Linq::Expressions::Expression
public sealed class InvocationExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider
public sealed class InvocationExpression : System.Linq.Expressions.Expression
type InvocationExpression = class
    inherit Expression
    interface IArgumentProvider
type InvocationExpression = class
    inherit Expression
Public NotInheritable Class InvocationExpression
Inherits Expression
Implements IArgumentProvider
Public NotInheritable Class InvocationExpression
Inherits Expression
Ereditarietà
InvocationExpression
Implementazioni

Esempio

Nell'esempio seguente viene creato un oggetto InvocationExpression che rappresenta la chiamata di un'espressione lambda con argomenti specificati.

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)

Commenti

Usare i Invoke metodi factory per creare un oggetto InvocationExpression.

L'oggetto NodeType di è InvocationExpressionInvoke.

Proprietà

Nome Descrizione
Arguments

Ottiene gli argomenti a cui è applicata l'espressione delegate o lambda.

CanReduce

Indica che il nodo può essere ridotto a un nodo più semplice. Se restituisce true, è possibile chiamare Reduce() per produrre la forma ridotta.

(Ereditato da Expression)
Expression

Ottiene il delegato o l'espressione lambda da applicare.

NodeType

Restituisce il tipo di nodo di questa espressione. I nodi di estensione devono restituire Extension quando si esegue l'override di questo metodo.

NodeType

Ottiene il tipo di nodo dell'oggetto Expression.

(Ereditato da Expression)
Type

Ottiene il tipo statico dell'espressione rappresentata da .Expression

Type

Ottiene il tipo statico dell'espressione rappresentata da .Expression

(Ereditato da Expression)

Metodi

Nome Descrizione
Accept(ExpressionVisitor)

Invia al metodo visit specifico per questo tipo di nodo. Ad esempio, MethodCallExpression chiama .VisitMethodCall(MethodCallExpression)

(Ereditato da Expression)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Reduce()

Riduce questo nodo a un'espressione più semplice. Se CanReduce restituisce true, verrà restituita un'espressione valida. Questo metodo può restituire un altro nodo che deve essere ridotto.

(Ereditato da Expression)
ReduceAndCheck()

Riduce questo nodo a un'espressione più semplice. Se CanReduce restituisce true, verrà restituita un'espressione valida. Questo metodo può restituire un altro nodo che deve essere ridotto.

(Ereditato da Expression)
ReduceExtensions()

Riduce l'espressione a un tipo di nodo noto (che non è un nodo di estensione) o restituisce semplicemente l'espressione se è già un tipo noto.

(Ereditato da Expression)
ToString()

Restituisce una rappresentazione testuale dell'oggetto Expression.

(Ereditato da Expression)
Update(Expression, IEnumerable<Expression>)

Crea una nuova espressione simile a questa, ma utilizzando gli elementi figlio forniti. Se tutti gli elementi figlio sono uguali, restituirà questa espressione.

VisitChildren(ExpressionVisitor)

Riduce il nodo e quindi chiama il delegato visitor nell'espressione ridotta. Il metodo genera un'eccezione se il nodo non è reducibile.

(Ereditato da Expression)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IArgumentProvider.ArgumentCount

Restituisce il numero di argomenti nel nodo dell'albero delle espressioni. Non utilizzare questo membro. È pubblico solo a causa del refactoring degli assembly e viene usato internamente per le ottimizzazioni delle prestazioni.

IArgumentProvider.GetArgument(Int32)

Restituisce l'argomento in corrispondenza dell'indice, generando un'eccezione se l'indice non è compreso nei limiti. Non utilizzare questo membro. È pubblico solo a causa del refactoring degli assembly e viene usato internamente per le ottimizzazioni delle prestazioni.

Si applica a