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)

 

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

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

method

Oggetto MethodInfo che rappresenta il metodo di destinazione.

arg0

Oggetto Expression che rappresenta il primo argomento.

arg1

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.

Esempio di codice seguente viene illustrato come creare un'espressione che chiama un metodo di istanza che dispone di due argomenti.

// 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 4.5
.NET Framework
Disponibile da 4.0
Portable Class Library
Supportato in: portable .NET platforms
Silverlight
Disponibile da 4.0
Windows Phone Silverlight
Disponibile da 8.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: