(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Expression.Call-Methode (Expression, MethodInfo, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die zwei Argumente akzeptiert.

Namespace:  System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

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

Parameter

instance
Typ: System.Linq.Expressions.Expression
Ein Expression, das die Instanz für einen Instanzaufruf angibt. (Übergeben Sie NULL für eine statische Methode bzw. eine Shared-Methode in Visual Basic.)
method
Typ: System.Reflection.MethodInfo
Das MethodInfo, das die Zielmethode darstellt.
arg0
Typ: System.Linq.Expressions.Expression
Das Expression, das das erste Argument darstellt.
arg1
Typ: System.Linq.Expressions.Expression
Das Expression, das das zweite Argument darstellt.

Rückgabewert

Typ: System.Linq.Expressions.MethodCallExpression
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Method-Eigenschaft auf die angegebenen Werte festgelegt sind.

Im folgenden Codebeispiel wird gezeigt, wie ein Ausdruck, der eine Instanzmethode mit zwei Argumenten aufruft, erstellt wird.


// 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

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Unterstützt in: 4

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft