MethodCallExpression Classe

Definizione

Rappresenta una chiamata a un metodo statico o di istanza.Represents a call to either static or an instance method.

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

Esempio

Nell'esempio seguente viene creato un MethodCallExpression oggetto che rappresenta l'indicizzazione in una matrice bidimensionale.The following example creates a MethodCallExpression object that represents indexing into a two-dimensional array.

string[,] gradeArray =
    { {"chemistry", "history", "mathematics"}, {"78", "61", "82"} };

System.Linq.Expressions.Expression arrayExpression =
    System.Linq.Expressions.Expression.Constant(gradeArray);

// Create a MethodCallExpression that represents indexing
// into the two-dimensional array 'gradeArray' at (0, 2).
// Executing the expression would return "mathematics".
System.Linq.Expressions.MethodCallExpression methodCallExpression =
    System.Linq.Expressions.Expression.ArrayIndex(
        arrayExpression,
        System.Linq.Expressions.Expression.Constant(0),
        System.Linq.Expressions.Expression.Constant(2));

Console.WriteLine(methodCallExpression.ToString());

// This code produces the following output:
//
// value(System.String[,]).Get(0, 2)
Dim gradeArray(,) As String = _
    {{"chemistry", "history", "mathematics"}, {"78", "61", "82"}}

Dim arrayExpression As System.Linq.Expressions.Expression = _
    System.Linq.Expressions.Expression.Constant(gradeArray)

' Create a MethodCallExpression that represents indexing
' into the two-dimensional array 'gradeArray' at (0, 2).
' Executing the expression would return "mathematics".
Dim methodCallExpression As System.Linq.Expressions.MethodCallExpression = _
    System.Linq.Expressions.Expression.ArrayIndex( _
        arrayExpression, _
        System.Linq.Expressions.Expression.Constant(0), _
        System.Linq.Expressions.Expression.Constant(2))

Console.WriteLine(methodCallExpression.ToString())

' This code produces the following output:
'
' value(System.String[,]).Get(0, 2)

Commenti

Usare il Call ArrayIndex ArrayIndex Metodo Factory, o per creare un oggetto MethodCallExpression .Use the Call, ArrayIndex, or ArrayIndex factory method to create a MethodCallExpression.

Il valore della NodeType proprietà di un MethodCallExpression oggetto è Call .The value of the NodeType property of a MethodCallExpression object is Call.

Proprietà

Arguments

Ottiene una raccolta di espressioni che rappresentano gli argomenti del metodo chiamato.Gets a collection of expressions that represent arguments of the called method.

CanReduce

Indica che il nodo può essere ridotto a un nodo più semplice.Indicates that the node can be reduced to a simpler node. Se restituisce true, è possibile chiamare Reduce() per generare la forma ridotta.If this returns true, Reduce() can be called to produce the reduced form.

(Ereditato da Expression)
Method

Ottiene l’oggetto MethodInfo per il metodo da chiamare.Gets the MethodInfo for the method to be called.

NodeType

Restituisce il tipo di nodo di Expression.Returns the node type of this Expression.

NodeType

Ottiene il tipo di nodo di Expression.Gets the node type of this Expression.

(Ereditato da Expression)
Object

Ottiene l’oggetto Expression che rappresenta l'istanza per le chiamate al metodo dell’istanza oppure null per le chiamate al metodo statico.Gets the Expression that represents the instance for instance method calls or null for static method calls.

Type

Ottiene il tipo statico dell'espressione rappresentata da Expression.Gets the static type of the expression that this Expression represents.

Type

Ottiene il tipo statico dell'espressione rappresentata da Expression.Gets the static type of the expression that this Expression represents.

(Ereditato da Expression)

Metodi

Accept(ExpressionVisitor)

Invia al metodo Visit specifico per questo tipo di nodo.Dispatches to the specific visit method for this node type. Ad esempio, MethodCallExpression chiama VisitMethodCall(MethodCallExpression).For example, MethodCallExpression calls the VisitMethodCall(MethodCallExpression).

Accept(ExpressionVisitor)

Invia al metodo Visit specifico per questo tipo di nodo.Dispatches to the specific visit method for this node type. Ad esempio, MethodCallExpression chiama VisitMethodCall(MethodCallExpression).For example, MethodCallExpression calls the VisitMethodCall(MethodCallExpression).

(Ereditato da Expression)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
Reduce()

Riduce questo nodo a un'espressione più semplice.Reduces this node to a simpler expression. Se CanReduce restituisce true, deve essere restituita un'espressione valida.If CanReduce returns true, this should return a valid expression. Questo metodo può restituire un altro nodo che deve essere a sua volta ridotto.This method can return another node which itself must be reduced.

(Ereditato da Expression)
ReduceAndCheck()

Riduce questo nodo a un'espressione più semplice.Reduces this node to a simpler expression. Se CanReduce restituisce true, deve essere restituita un'espressione valida.If CanReduce returns true, this should return a valid expression. Questo metodo può restituire un altro nodo che deve essere a sua volta ridotto.This method can return another node which itself must be reduced.

(Ereditato da Expression)
ReduceExtensions()

Riduce l'espressione a un tipo di nodo noto (diverso da un nodo di estensione) o restituisce solo l'espressione se è già un tipo noto.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.

(Ereditato da Expression)
ToString()

Restituisce una rappresentazione testuale di Expression.Returns a textual representation of the Expression.

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

Crea una nuova espressione simile a questa, ma che usa gli elementi figlio specificati.Creates a new expression that is like this one, but using the supplied children. Se tutti gli elementi figlio sono uguali, verrà restituita questa espressione.If all of the children are the same, it will return this expression.

VisitChildren(ExpressionVisitor)

Riduce il nodo, quindi chiama il delegato del visitatore sull'espressione ridotta.Reduces the node and then calls the visitor delegate on the reduced expression. Se il nodo non è riducibile, il metodo genera un'eccezione.The method throws an exception if the node is not reducible.

(Ereditato da Expression)

Implementazioni dell'interfaccia esplicita

IArgumentProvider.ArgumentCount

Restituisce il numero di argomenti per il nodo della struttura ad albero dell'espressione.Returns the number of arguments to the expression tree node. Non usare questo membro.You should not use this member. Essendo solo di tipo pubblico a causa del refactoring di assembly si usa internamente per le ottimizzazioni delle prestazioni.It is only public due to assembly refactoring, and it is used internally for performance optimizations.

IArgumentProvider.GetArgument(Int32)

Restituisce l'argomento in corrispondenza dell'indice, generando un'eccezione se l'indice non è compreso nell'intervallo.Returns the argument at index, throwing if index is out of bounds. Non usare questo membro.You should not use this member. Essendo solo di tipo pubblico a causa del refactoring di assembly si usa internamente per le ottimizzazioni delle prestazioni.It is only public due to assembly refactoring, and it is used internally for performance optimizations.

Si applica a