Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Expression.Call-Methode: (Expression, MethodInfo)

 

Veröffentlicht: Oktober 2016

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

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

public static MethodCallExpression Call(
	Expression instance,
	MethodInfo method
)

Parameter

instance
Type: System.Linq.Expressions.Expression

Ein Expression, das die Instanz für einen Instanzmethodenaufruf angibt (übergeben Sie null für eine static-Methode bzw. in Visual Basic eine Shared-Methode).

method
Type: System.Reflection.MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.

Rückgabewert

Type: 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.

Exception Condition
ArgumentNullException

method ist null.

- oder -

instance ist null und method eine Instanzmethode darstellt.

ArgumentException

instance. Typ ist nicht für die auf den deklarierenden Typ des durch dargestellten Methode method.

Zur Darstellung von eines Aufrufs einer static (Shared in Visual Basic)-Methode übergeben null für die instance -Parameter beim Aufrufen dieser Methode.

Wenn method eine Instanzmethode darstellt, die Type -Eigenschaft des instance muss den deklarierenden Typ des durch dargestellten Methode zugeordnet werden method.

Die Arguments -Eigenschaft der resultierenden MethodCallExpression ist leer. Die Type Eigenschaft entspricht dem Rückgabetyp der durch dargestellten Methode method.

Im folgenden Codebeispiel wird veranschaulicht, wie einen Ausdruck erstellt, der eine Methode ohne Argumente aufgerufen wird.

// Add the following directive to your file:
// using System.Linq.Expressions;  

// This expression represents a call to an instance method without arguments.
Expression callExpr = Expression.Call(
    Expression.Constant("sample string"), typeof(String).GetMethod("ToUpper", new Type[] { }));

// 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<String>>(callExpr).Compile()());

// This code example produces the following output:
//
// "sample string".ToUpper
// SAMPLE STRING

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: