MethodCallExpression MethodCallExpression MethodCallExpression MethodCallExpression Class

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 class MethodCallExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider
type MethodCallExpression = class
    inherit Expression
    interface IArgumentProvider
Public Class MethodCallExpression
Inherits Expression
Implements IArgumentProvider
Ereditarietà
MethodCallExpressionMethodCallExpressionMethodCallExpressionMethodCallExpression
Implementazioni

Esempi

Nell'esempio seguente viene creato MethodCallExpression un 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 Callmetodo ArrayIndexFactory, ArrayIndex 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 Arguments Arguments 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 CanReduce CanReduce 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.

(Inherited from Expression)
Method Method Method Method

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

NodeType NodeType NodeType NodeType

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

Object Object Object Object

Ottiene l'oggetto Expression che rappresenta l'istanza per le chiamate ai metodi di istanza oppure null per le chiamate ai metodi statici.Gets the Expression that represents the instance for instance method calls or null for static method calls.

Type Type Type Type

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

Metodi

Accept(ExpressionVisitor) Accept(ExpressionVisitor) Accept(ExpressionVisitor) 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).

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
Reduce() Reduce() Reduce() 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.

(Inherited from Expression)
ReduceAndCheck() ReduceAndCheck() ReduceAndCheck() 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.

(Inherited from Expression)
ReduceExtensions() ReduceExtensions() ReduceExtensions() 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.

(Inherited from Expression)
ToString() ToString() ToString() ToString()

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

(Inherited from Expression)
Update(Expression, IEnumerable<Expression>) Update(Expression, IEnumerable<Expression>) Update(Expression, IEnumerable<Expression>) Update(Expression, IEnumerable<Expression>)

Crea una nuova espressione simile a quella corrente, utilizzando però 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 l'espressione corrente.If all of the children are the same, it will return this expression.

VisitChildren(ExpressionVisitor) VisitChildren(ExpressionVisitor) VisitChildren(ExpressionVisitor) 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.

(Inherited from Expression)

Implementazioni dell'interfaccia esplicita

IArgumentProvider.ArgumentCount IArgumentProvider.ArgumentCount IArgumentProvider.ArgumentCount IArgumentProvider.ArgumentCount

Restituisce il numero di argomenti per il nodo dell'albero delle espressioni.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) IArgumentProvider.GetArgument(Int32) IArgumentProvider.GetArgument(Int32) 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