Condividi tramite


MethodCallExpression Classe

Definizione

Rappresenta una chiamata a un metodo statico o di istanza.

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.

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 , ArrayIndexo ArrayIndex factory per creare un oggetto MethodCallExpression.

Il valore della NodeType proprietà di un MethodCallExpression oggetto è Call.

Proprietà

Nome Descrizione
Arguments

Ottiene una raccolta di espressioni che rappresentano argomenti del metodo chiamato.

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)
Method

Ottiene l'oggetto MethodInfo per il metodo da chiamare.

NodeType

Restituisce il tipo di nodo dell'oggetto Expression.

NodeType

Ottiene il tipo di nodo dell'oggetto Expression.

(Ereditato da Expression)
Object

Ottiene l'oggetto Expression che rappresenta l'istanza per le chiamate al metodo di istanza o null per le chiamate al metodo statico.

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)

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