Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Expression.Call (Expression, MethodInfo, Expression, Expression)

 

Data di pubblicazione: ottobre 2016

Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo che accetta due argomenti.

Spazio dei nomi:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static MethodCallExpression Call(
	Expression instance,
	MethodInfo method,
	Expression arg0,
	Expression arg1
)

Parametri

instance
Type: System.Linq.Expressions.Expression

Oggetto Expression che specifica l'istanza per una chiamata all'istanza. Passare Null per un metodo statico (Shared in Visual Basic).

method
Type: System.Reflection.MethodInfo

Oggetto MethodInfo che rappresenta il metodo di destinazione.

arg0
Type: System.Linq.Expressions.Expression

Oggetto Expression che rappresenta il primo argomento.

arg1
Type: System.Linq.Expressions.Expression

Oggetto Expression che rappresenta il secondo argomento.

Valore restituito

Type: System.Linq.Expressions.MethodCallExpression

Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Method sono impostate sui valori specificati.

The following code example shows how to create an expression that calls an instance method that has two arguments.

// Add the following directive to your file:
// using System.Linq.Expressions;  
public class SampleClass
{
    public int AddIntegers(int arg1, int arg2)
    {
        return arg1 + arg2;
    }
}

static public void TestCall()
{
    // This expression represents a call to an instance method that has two arguments.
    // The first argument is an expression that creates a new object of the specified type.
    Expression callExpr = Expression.Call(
        Expression.New(typeof(SampleClass)),
        typeof(SampleClass).GetMethod("AddIntegers", new Type[] { typeof(int), typeof(int) }),
        Expression.Constant(1),
        Expression.Constant(2)
        );

    // Print out the expression.
    Console.WriteLine(callExpr.ToString());

    // The following statement first creates an expression tree,
    // then compiles it, and then executes it.
    Console.WriteLine(Expression.Lambda<Func<int>>(callExpr).Compile()());

    // This code example produces the following output:
    //
    // new SampleClass().AddIntegers(1, 2)
    // 3
}

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 4.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 4.0
Windows Phone Silverlight
Disponibile da 8.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: