Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

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

Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo di istanza 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
Tipo: System.Linq.Expressions.Expression
Expression specifica che l'istanza per una chiamata dell'istanza. (null della sessione per (condiviso in Visual Basic) un metodo statico).
method
Tipo: System.Reflection.MethodInfo
MethodInfo che rappresenta il metodo di destinazione.
arg0
Tipo: System.Linq.Expressions.Expression
Expression che rappresenta il primo argomento.
arg1
Tipo: System.Linq.Expressions.Expression
Expression che rappresenta il secondo argomento.

Valore restituito

Tipo: System.Linq.Expressions.MethodCallExpression
In MethodCallExpression che sono NodeType proprietà uguale a Call e Object e Method proprietà impostate sui valori specificati.

Nell'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
}


.NET Framework

Supportato in: 4.5, 4

.NET Framework Client Profile

Supportato in: 4

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
© 2013 Microsoft. Tutti i diritti riservati.