Expression.Call Methode

Definition

Erstellt eine MethodCallExpression.Creates a MethodCallExpression.

Überlädt

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die fünf Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a static method that takes five arguments.

Call(Expression, MethodInfo, Expression, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die drei Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a method that takes three arguments.

Call(Type, String, Type[], Expression[])

Erstellt eine MethodCallExpression, die einen Aufruf einer static-Methode (Shared in Visual Basic) durch das Aufrufen der entsprechenden Factorymethode darstellt.Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method by calling the appropriate factory method.

Call(MethodInfo, Expression, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die drei Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a static method that takes three arguments.

Call(Expression, String, Type[], Expression[])

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode durch das Aufrufen der entsprechenden Factorymethode darstellt.Creates a MethodCallExpression that represents a call to a method by calling the appropriate factory method.

Call(Expression, MethodInfo, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die zwei Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a method that takes two arguments.

Call(MethodInfo, Expression, Expression, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die vier Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a static method that takes four arguments.

Call(Expression, MethodInfo, Expression[])

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a method that takes arguments.

Call(Expression, MethodInfo, IEnumerable<Expression>)

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a method that takes arguments.

Call(MethodInfo, Expression[])

Erstellt eine MethodCallExpression, die einen Aufruf einer static-Methode (Shared in Visual Basic) mit Argumenten darstellt.Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method that has arguments.

Call(MethodInfo, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer static-Methode (Shared in Visual Basic) mit einem Argument darstellt.Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method that takes one argument.

Call(MethodInfo, IEnumerable<Expression>)

Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode (Shared in Visual Basic) darstellt.Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method.

Call(Expression, MethodInfo)

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die keine Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a method that takes no arguments.

Call(MethodInfo, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die zwei Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a static method that takes two arguments.

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die fünf Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a static method that takes five arguments.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2, System::Linq::Expressions::Expression ^ arg3, System::Linq::Expressions::Expression ^ arg4);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3, System.Linq.Expressions.Expression arg4);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression, arg3 As Expression, arg4 As Expression) As MethodCallExpression

Parameter

method
MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.A MethodInfo to set the Method property equal to.

arg0
Expression

Das Expression, das das erste Argument darstellt.The Expression that represents the first argument.

arg1
Expression

Das Expression, das das zweite Argument darstellt.The Expression that represents the second argument.

arg2
Expression

Das Expression, das das dritte Argument darstellt.The Expression that represents the third argument.

arg3
Expression

Das Expression, das das vierte Argument darstellt.The Expression that represents the fourth argument.

arg4
Expression

Das Expression, das das fünfte Argument darstellt.The Expression that represents the fifth argument.

Gibt zurück

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.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Ausnahmen

method ist NULL.method is null.

Gilt für:

Call(Expression, MethodInfo, Expression, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die drei Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a method that takes three arguments.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression) As MethodCallExpression

Parameter

instance
Expression

Ein Expression, das die Instanz für einen Instanzaufruf angibt.An Expression that specifies the instance for an instance call. (Übergeben Sie NULL für eine statische Methode bzw. eine Shared-Methode in Visual Basic.)(pass null for a static (Shared in Visual Basic) method).

method
MethodInfo

Das MethodInfo, das die Zielmethode darstellt.The MethodInfo that represents the target method.

arg0
Expression

Das Expression, das das erste Argument darstellt.The Expression that represents the first argument.

arg1
Expression

Das Expression, das das zweite Argument darstellt.The Expression that represents the second argument.

arg2
Expression

Das Expression, das das dritte Argument darstellt.The Expression that represents the third argument.

Gibt zurück

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.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Gilt für:

Call(Type, String, Type[], Expression[])

Erstellt eine MethodCallExpression, die einen Aufruf einer static-Methode (Shared in Visual Basic) durch das Aufrufen der entsprechenden Factorymethode darstellt.Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method by calling the appropriate factory method.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(Type ^ type, System::String ^ methodName, cli::array <Type ^> ^ typeArguments, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (Type type, string methodName, Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (Type type, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
static member Call : Type * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (type As Type, methodName As String, typeArguments As Type(), ParamArray arguments As Expression()) As MethodCallExpression

Parameter

type
Type

Der Typ, der die angegebene static -Methode (Shared in Visual Basic) enthält.The type that contains the specified static (Shared in Visual Basic) method.

methodName
String

Der Name der Methode.The name of the method.

typeArguments
Type[]

Ein Array von Type-Objekten, die die Typparameter der generischen Methode angeben.An array of Type objects that specify the type parameters of the generic method. Dieses Argument muss NULL sein, wenn durch methodName eine nicht generische Methode angegeben wird.This argument should be null when methodName specifies a non-generic method.

arguments
Expression[]

Ein Array von Expression-Objekten, das die Argumente der Methode darstellt.An array of Expression objects that represent the arguments to the method.

Gibt zurück

MethodCallExpression

Eine MethodCallExpression, bei der die NodeType-Eigenschaft gleich Call ist, die Method-Eigenschaft auf die MethodInfo festgelegt ist, die die angegebene static-Methode (Shared in Visual Basic) darstellt, und die Arguments-Eigenschaft auf die angegebenen Argumente festgelegt ist.A MethodCallExpression that has the NodeType property equal to Call, the Method property set to the MethodInfo that represents the specified static (Shared in Visual Basic) method, and the Arguments property set to the specified arguments.

Ausnahmen

type oder methodName ist null.type or methodName is null.

Es wurde keine Methode, deren Namen gleich methodName ist, deren Typparameter typeArguments entsprechen und deren Parametertypen arguments entsprechen, in type oder seinen Basistypen gefunden.No method whose name is methodName, whose type parameters match typeArguments, and whose parameter types match arguments is found in type or its base types.

- oder --or- Es wurde mehr als eine Methode, deren Namen gleich methodName ist, deren Typparameter typeArguments entsprechen und deren Parametertypen arguments entsprechen, in type oder seinen Basistypen gefunden.More than one method whose name is methodName, whose type parameters match typeArguments, and whose parameter types match arguments is found in type or its base types.

Hinweise

Die- Type Eigenschaft des resultierenden MethodCallExpression ist gleich dem Rückgabetyp der Methode, die von angegeben wird methodName .The Type property of the resulting MethodCallExpression is equal to the return type of the method denoted by methodName. Die Object-Eigenschaft ist null.The Object property is null.

Gilt für:

Call(MethodInfo, Expression, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die drei Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a static method that takes three arguments.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression) As MethodCallExpression

Parameter

method
MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.A MethodInfo to set the Method property equal to.

arg0
Expression

Das Expression, das das erste Argument darstellt.The Expression that represents the first argument.

arg1
Expression

Das Expression, das das zweite Argument darstellt.The Expression that represents the second argument.

arg2
Expression

Das Expression, das das dritte Argument darstellt.The Expression that represents the third argument.

Gibt zurück

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.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Ausnahmen

method ist NULL.method is null.

Gilt für:

Call(Expression, String, Type[], Expression[])

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode durch das Aufrufen der entsprechenden Factorymethode darstellt.Creates a MethodCallExpression that represents a call to a method by calling the appropriate factory method.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::String ^ methodName, cli::array <Type ^> ^ typeArguments, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, string methodName, Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Linq.Expressions.Expression * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, methodName As String, typeArguments As Type(), ParamArray arguments As Expression()) As MethodCallExpression

Parameter

instance
Expression

Eine Expression, deren Type-Eigenschaftswert nach einer bestimmten Methode durchsucht wird.An Expression whose Type property value will be searched for a specific method.

methodName
String

Der Name der Methode.The name of the method.

typeArguments
Type[]

Ein Array von Type-Objekten, die die Typparameter der generischen Methode angeben.An array of Type objects that specify the type parameters of the generic method. Dieses Argument muss NULL sein, wenn durch methodName eine nicht generische Methode angegeben wird.This argument should be null when methodName specifies a non-generic method.

arguments
Expression[]

Ein Array von Expression-Objekten, das die Argumente der Methode darstellt.An array of Expression objects that represents the arguments to the method.

Gibt zurück

MethodCallExpression

Eine MethodCallExpression, bei der die NodeType-Eigenschaft gleich Call ist, die Object-Eigenschaft gleich instance ist, Method auf die MethodInfo festgelegt ist, die die angegebene Instanzmethode darstellt, und Arguments auf die angegebenen Argumente festgelegt ist.A MethodCallExpression that has the NodeType property equal to Call, the Object property equal to instance, Method set to the MethodInfo that represents the specified instance method, and Arguments set to the specified arguments.

Ausnahmen

instance oder methodName ist null.instance or methodName is null.

Es wurde keine Methode, deren Namen gleich methodName ist, deren Typparameter typeArguments entsprechen und deren Parametertypen arguments entsprechen, in instance.Type oder ihrer Basistypen gefunden.No method whose name is methodName, whose type parameters match typeArguments, and whose parameter types match arguments is found in instance.Type or its base types.

- oder --or- Es wurde mehr als eine Methode, deren Namen gleich methodName ist, deren Typparameter typeArguments entsprechen und deren Parametertypen arguments entsprechen, in instance.Type oder ihrer Basistypen gefunden.More than one method whose name is methodName, whose type parameters match typeArguments, and whose parameter types match arguments is found in instance.Type or its base types.

Hinweise

Die- Type Eigenschaft des resultierenden MethodCallExpression ist gleich dem Rückgabetyp der Methode, die von angegeben wird methodName .The Type property of the resulting MethodCallExpression is equal to the return type of the method denoted by methodName.

Gilt für:

Call(Expression, MethodInfo, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die zwei Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a method that takes two arguments.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arg0 As Expression, arg1 As Expression) As MethodCallExpression

Parameter

instance
Expression

Ein Expression, das die Instanz für einen Instanzaufruf angibt.An Expression that specifies the instance for an instance call. (Übergeben Sie NULL für eine statische Methode bzw. eine Shared-Methode in Visual Basic.)(pass null for a static (Shared in Visual Basic) method).

method
MethodInfo

Das MethodInfo, das die Zielmethode darstellt.The MethodInfo that represents the target method.

arg0
Expression

Das Expression, das das erste Argument darstellt.The Expression that represents the first argument.

arg1
Expression

Das Expression, das das zweite Argument darstellt.The Expression that represents the second argument.

Gibt zurück

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.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie ein Ausdruck erstellt wird, der eine Instanzmethode mit zwei Argumenten aufruft.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
}
' Add the following directive to your file:
' Imports System.Linq.Expressions  

Public Class SampleClass
    Public Function AddIntegers(ByVal arg1 As Integer, ByVal arg2 As Integer) As Integer
        Return (arg1 + arg2)
    End Function
End Class
Public Shared Sub 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.
    Dim callExpr As Expression = Expression.Call(
        Expression.[New](GetType(SampleClass)),
        GetType(SampleClass).GetMethod("AddIntegers", New Type() {GetType(Integer), GetType(Integer)}),
        Expression.Constant(1),
        Expression.Constant(2)
      )

    ' Print 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(Of Func(Of Integer))(callExpr).Compile()())
End Sub

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

Gilt für:

Call(MethodInfo, Expression, Expression, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die vier Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a static method that takes four arguments.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2, System::Linq::Expressions::Expression ^ arg3);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression, arg3 As Expression) As MethodCallExpression

Parameter

method
MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.A MethodInfo to set the Method property equal to.

arg0
Expression

Das Expression, das das erste Argument darstellt.The Expression that represents the first argument.

arg1
Expression

Das Expression, das das zweite Argument darstellt.The Expression that represents the second argument.

arg2
Expression

Das Expression, das das dritte Argument darstellt.The Expression that represents the third argument.

arg3
Expression

Das Expression, das das vierte Argument darstellt.The Expression that represents the fourth argument.

Gibt zurück

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.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Ausnahmen

method ist NULL.method is null.

Gilt für:

Call(Expression, MethodInfo, Expression[])

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a method that takes arguments.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, ParamArray arguments As Expression()) As MethodCallExpression

Parameter

instance
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).An Expression that specifies the instance for an instance method call (pass null for a static (Shared in Visual Basic) method).

method
MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.A MethodInfo to set the Method property equal to.

arguments
Expression[]

Ein Array von Expression-Objekten, mit denen die Arguments-Auflistung aufgefüllt wird.An array of Expression objects to use to populate the Arguments collection.

Gibt zurück

MethodCallExpression

Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Eigenschaften Object, Method und Arguments auf die angegebenen Werte festgelegt sind.A MethodCallExpression that has the NodeType property equal to Call and the Object, Method, and Arguments properties set to the specified values.

Ausnahmen

method ist null.method is null.

- oder --or- instance ist null, und method stellt eine Instanzmethode dar.instance is null and method represents an instance method.

- oder --or- arguments ist nicht null, und mindestens ein Element davon ist null.arguments is not null and one or more of its elements is null.

instance.Type kann dem deklarierenden Typ der durch method dargestellten Methode nicht zugewiesen werden.instance.Type is not assignable to the declaring type of the method represented by method.

- oder --or- Die Anzahl der Elemente in arguments stimmt nicht mit der Anzahl der Parameter für die durch method dargestellte Methode dar.The number of elements in arguments does not equal the number of parameters for the method represented by method.

- oder --or- Mindestens ein Element von arguments kann nicht dem entsprechenden Parameter für die durch method dargestellte Methode zugewiesen werden.One or more of the elements of arguments is not assignable to the corresponding parameter for the method represented by method.

Hinweise

Um einen Aufrufen einer- static Methode ( Shared in Visual Basic) darzustellen, übergeben null Sie für den- instance Parameter, wenn Sie diese Methode aufrufen, oder verwenden Sie Call stattdessen.To represent a call to a static (Shared in Visual Basic) method, pass in null for the instance parameter when you call this method, or call Call instead.

Wenn method eine Instanzmethode darstellt, Type muss die-Eigenschaft von instance dem deklarierenden Typ der durch dargestellten Methode zugewiesen werden können method .If method represents an instance method, the Type property of instance must be assignable to the declaring type of the method represented by method.

Wenn arguments nicht ist null , muss die gleiche Anzahl von Elementen wie die Anzahl der Parameter für die durch dargestellte Methode aufweisen method .If arguments is not null, it must have the same number of elements as the number of parameters for the method represented by method. Jedes Element in arguments darf nicht sein null und muss dem entsprechenden Parameter von zugewiesen werden können method , möglicherweise nach quotingdem Angeben von.Each element in arguments must not be null and must be assignable to the corresponding parameter of method, possibly after quoting.

Hinweis

Ein Element wird nur in Anführungszeichen eingeschlossen, wenn der entsprechende Methoden Parameter vom Typ ist Expression .An element will be quoted only if the corresponding method parameter is of type Expression. Anführungs Verfahren bedeutet, dass das Element in einem Knoten umschließt wird Quote .Quoting means the element is wrapped in a Quote node. Der resultierende Knoten ist eine, UnaryExpression deren- Operand Eigenschaft das-Element von ist arguments .The resulting node is a UnaryExpression whose Operand property is the element of arguments.

Die- Arguments Eigenschaft des resultierenden MethodCallExpression ist leer, wenn den Wert hat arguments null .The Arguments property of the resulting MethodCallExpression is empty if arguments is null. Andernfalls enthält Sie dieselben Elemente wie arguments , von denen einige möglicherweise in Anführungszeichen eingeschlossen werden.Otherwise, it contains the same elements as arguments, some of which may be quoted.

Die- Type Eigenschaft des resultierenden MethodCallExpression ist gleich dem Rückgabetyp der durch dargestellten Methode method .The Type property of the resulting MethodCallExpression is equal to the return type of the method represented by method.

Gilt für:

Call(Expression, MethodInfo, IEnumerable<Expression>)

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a method that takes arguments.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arguments As IEnumerable(Of Expression)) As MethodCallExpression

Parameter

instance
Expression

Eine Expression, auf die die Object-Eigenschaft festgelegt werden soll. Übergeben Sie null für eine static-Methode (Shared in Visual Basic).An Expression to set the Object property equal to (pass null for a static (Shared in Visual Basic) method).

method
MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.A MethodInfo to set the Method property equal to.

arguments
IEnumerable<Expression>

Ein IEnumerable<T>, das Expression-Objekte enthält, mit denen die Arguments-Auflistung aufgefüllt werden soll.An IEnumerable<T> that contains Expression objects to use to populate the Arguments collection.

Gibt zurück

MethodCallExpression

Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Eigenschaften Object, Method und Arguments auf die angegebenen Werte festgelegt sind.A MethodCallExpression that has the NodeType property equal to Call and the Object, Method, and Arguments properties set to the specified values.

Ausnahmen

method ist null.method is null.

- oder --or- instance ist null, und method stellt eine Instanzmethode dar.instance is null and method represents an instance method.

instance.Type kann dem deklarierenden Typ der durch method dargestellten Methode nicht zugewiesen werden.instance.Type is not assignable to the declaring type of the method represented by method.

- oder --or- Die Anzahl der Elemente in arguments stimmt nicht mit der Anzahl der Parameter für die durch method dargestellte Methode dar.The number of elements in arguments does not equal the number of parameters for the method represented by method.

- oder --or- Mindestens ein Element von arguments kann nicht dem entsprechenden Parameter für die durch method dargestellte Methode zugewiesen werden.One or more of the elements of arguments is not assignable to the corresponding parameter for the method represented by method.

Hinweise

Um einen Aufrufen einer- static Methode ( Shared in Visual Basic) darzustellen, übergeben null Sie für den- instance Parameter, wenn Sie diese Methode aufrufen, oder verwenden Sie Call stattdessen.To represent a call to a static (Shared in Visual Basic) method, pass in null for the instance parameter when you call this method, or call Call instead.

Wenn method eine Instanzmethode darstellt, Type muss die-Eigenschaft von instance dem deklarierenden Typ der durch dargestellten Methode zugewiesen werden können method .If method represents an instance method, the Type property of instance must be assignable to the declaring type of the method represented by method.

Wenn arguments nicht ist null , muss die gleiche Anzahl von Elementen wie die Anzahl der Parameter für die durch dargestellte Methode aufweisen method .If arguments is not null, it must have the same number of elements as the number of parameters for the method represented by method. Jedes Element in arguments darf nicht sein null und muss dem entsprechenden Parameter von zugewiesen werden können method , möglicherweise nach quotingdem Angeben von.Each element in arguments must not be null and must be assignable to the corresponding parameter of method, possibly after quoting.

Hinweis

Ein Element wird nur in Anführungszeichen eingeschlossen, wenn der entsprechende Methoden Parameter vom Typ ist Expression .An element will be quoted only if the corresponding method parameter is of type Expression. Anführungs Verfahren bedeutet, dass das Element in einem Knoten umschließt wird Quote .Quoting means the element is wrapped in a Quote node. Der resultierende Knoten ist eine, UnaryExpression deren- Operand Eigenschaft das-Element von ist arguments .The resulting node is a UnaryExpression whose Operand property is the element of arguments.

Die- Arguments Eigenschaft des resultierenden MethodCallExpression ist leer, wenn den Wert hat arguments null .The Arguments property of the resulting MethodCallExpression is empty if arguments is null. Andernfalls enthält Sie dieselben Elemente wie arguments , von denen einige möglicherweise in Anführungszeichen eingeschlossen werden.Otherwise, it contains the same elements as arguments, some of which may be quoted.

Die- Type Eigenschaft des resultierenden MethodCallExpression ist gleich dem Rückgabetyp der durch dargestellten Methode method .The Type property of the resulting MethodCallExpression is equal to the return type of the method represented by method.

Gilt für:

Call(MethodInfo, Expression[])

Erstellt eine MethodCallExpression, die einen Aufruf einer static-Methode (Shared in Visual Basic) mit Argumenten darstellt.Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method that has arguments.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, ParamArray arguments As Expression()) As MethodCallExpression

Parameter

method
MethodInfo

Eine MethodInfo, die eine static-Methode (Shared in Visual Basic) darstellt, auf die die Method-Eigenschaft festgelegt werden soll.A MethodInfo that represents a static (Shared in Visual Basic) method to set the Method property equal to.

arguments
Expression[]

Ein Array von Expression-Objekten, mit denen die Arguments-Auflistung aufgefüllt wird.An array of Expression objects to use to populate the Arguments collection.

Gibt zurück

MethodCallExpression

Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Method-Eigenschaft sowie die Arguments-Eigenschaft auf die angegebenen Werte festgelegt sind.A MethodCallExpression that has the NodeType property equal to Call and the Method and Arguments properties set to the specified values.

Ausnahmen

method ist null.method is null.

Die Anzahl der Elemente in arguments stimmt nicht mit der Anzahl der Parameter für die durch method dargestellte Methode dar.The number of elements in arguments does not equal the number of parameters for the method represented by method.

- oder --or- Mindestens ein Element von arguments kann nicht dem entsprechenden Parameter für die durch method dargestellte Methode zugewiesen werden.One or more of the elements of arguments is not assignable to the corresponding parameter for the method represented by method.

Hinweise

Wenn arguments nicht ist null , muss die gleiche Anzahl von Elementen wie die Anzahl der Parameter für die durch dargestellte Methode aufweisen method .If arguments is not null, it must have the same number of elements as the number of parameters for the method represented by method. Jedes Element in arguments darf nicht sein null und muss dem entsprechenden Parameter von zugewiesen werden können method , möglicherweise nach quotingdem Angeben von.Each element in arguments must not be null and must be assignable to the corresponding parameter of method, possibly after quoting.

Hinweis

Ein Element wird nur in Anführungszeichen eingeschlossen, wenn der entsprechende Methoden Parameter vom Typ ist Expression .An element will be quoted only if the corresponding method parameter is of type Expression. Anführungs Verfahren bedeutet, dass das Element in einem Knoten umschließt wird Quote .Quoting means the element is wrapped in a Quote node. Der resultierende Knoten ist eine, UnaryExpression deren- Operand Eigenschaft das-Element von ist arguments .The resulting node is a UnaryExpression whose Operand property is the element of arguments.

Die- Arguments Eigenschaft des resultierenden MethodCallExpression ist leer, wenn den Wert hat arguments null .The Arguments property of the resulting MethodCallExpression is empty if arguments is null. Andernfalls enthält Sie dieselben Elemente wie arguments , von denen einige möglicherweise in Anführungszeichen eingeschlossen werden.Otherwise, it contains the same elements as arguments, some of which may be quoted.

Die- Type Eigenschaft des resultierenden MethodCallExpression ist gleich dem Rückgabetyp der durch dargestellten Methode method .The Type property of the resulting MethodCallExpression is equal to the return type of the method represented by method. Die Object-Eigenschaft ist null.The Object property is null.

Gilt für:

Call(MethodInfo, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer static-Methode (Shared in Visual Basic) mit einem Argument darstellt.Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method that takes one argument.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression) As MethodCallExpression

Parameter

method
MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.A MethodInfo to set the Method property equal to.

arg0
Expression

Das Expression, das das erste Argument darstellt.The Expression that represents the first argument.

Gibt zurück

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.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Ausnahmen

method ist NULL.method is null.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie ein Ausdruck erstellt wird, der eine- static Shared Methode (in Visual Basic) aufruft, die ein Argument annimmt.The following example demonstrates how to create an expression that calls a static (Shared in Visual Basic) method that takes one argument.

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

public class SampleClass
{
    public static int Increment(int arg1)
    {
        return arg1 + 1;
    }
}

static public void TestCall()
{

    //This expression represents a call to an instance method with one argument.
    Expression callExpr = Expression.Call(
                            typeof(SampleClass).GetMethod("Increment"),
                            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:
    //
    // Increment(2)
    // 3
}
' Add the following directive to your file:
' Imports System.Linq.Expressions  

Public Class SampleClass
    Shared Function Increment(ByVal arg1 As Integer) As Integer
        Return arg1 + 1
    End Function
End Class
Shared Sub TestCall()
    'This expression represents a call to an instance method with one argument.
    Dim callExpr As Expression = Expression.Call(
        GetType(SampleClass).GetMethod("Increment"),
        Expression.Constant(2))

    ' Print 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(Of Func(Of Integer))(callExpr).Compile()())
End Sub

' This code example produces the following output:
'
' Increment(2)
' 3

Gilt für:

Call(MethodInfo, IEnumerable<Expression>)

Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode (Shared in Visual Basic) darstellt.Creates a MethodCallExpression that represents a call to a static (Shared in Visual Basic) method.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Call : System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arguments As IEnumerable(Of Expression)) As MethodCallExpression

Parameter

method
MethodInfo

Das MethodInfo, das die Zielmethode darstellt.The MethodInfo that represents the target method.

arguments
IEnumerable<Expression>

Ein Auflistung von Expression, die die Aufrufargumente darstellt.A collection of Expression that represents the call arguments.

Gibt zurück

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.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Gilt für:

Call(Expression, MethodInfo)

Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die keine Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a method that takes no arguments.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo) As MethodCallExpression

Parameter

instance
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).An Expression that specifies the instance for an instance method call (pass null for a static (Shared in Visual Basic) method).

method
MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.A MethodInfo to set the Method property equal to.

Gibt zurück

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.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Ausnahmen

method ist null.method is null.

- oder --or- instance ist null, und method stellt eine Instanzmethode dar.instance is null and method represents an instance method.

instance.Type kann dem deklarierenden Typ der durch method dargestellten Methode nicht zugewiesen werden.instance.Type is not assignable to the declaring type of the method represented by method.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie ein Ausdruck erstellt wird, der eine Methode ohne Argumente aufruft.The following code example shows how to create an expression that calls a method without arguments.

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

' Add the following directive to your file:
' Imports System.Linq.Expressions   

' This expression represents a call to an instance method without arguments.
Dim callExpr As Expression = Expression.Call(
    Expression.Constant("sample string"), GetType(String).GetMethod("ToUpper", New Type() {}))

' Print 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(Of Func(Of String))(callExpr).Compile()())

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

Hinweise

static Shared Übergeben null Sie für den- instance Parameter, wenn Sie diese Methode aufrufen, um einen Aufrufen einer-Methode (in Visual Basic) darzustellen.To represent a call to a static (Shared in Visual Basic) method, pass in null for the instance parameter when you call this method.

Wenn method eine Instanzmethode darstellt, Type muss die-Eigenschaft von instance dem deklarierenden Typ der durch dargestellten Methode zugewiesen werden können method .If method represents an instance method, the Type property of instance must be assignable to the declaring type of the method represented by method.

Die- Arguments Eigenschaft des resultierenden MethodCallExpression ist leer.The Arguments property of the resulting MethodCallExpression is empty. Die- Type Eigenschaft entspricht dem Rückgabetyp der durch dargestellten Methode method .The Type property is equal to the return type of the method represented by method.

Gilt für:

Call(MethodInfo, Expression, Expression)

Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die zwei Argumente akzeptiert.Creates a MethodCallExpression that represents a call to a static method that takes two arguments.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression) As MethodCallExpression

Parameter

method
MethodInfo

Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.A MethodInfo to set the Method property equal to.

arg0
Expression

Das Expression, das das erste Argument darstellt.The Expression that represents the first argument.

arg1
Expression

Das Expression, das das zweite Argument darstellt.The Expression that represents the second argument.

Gibt zurück

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.A MethodCallExpression that has the NodeType property equal to Call and the Object and Method properties set to the specified values.

Ausnahmen

method ist NULL.method is null.

Gilt für: