Expression.Call Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine 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. |
Call(Expression, MethodInfo, Expression, Expression, Expression) |
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die drei Argumente akzeptiert. |
Call(Type, String, Type[], Expression[]) |
Erstellt eine MethodCallExpression, die einen Aufruf einer |
Call(MethodInfo, Expression, Expression, Expression) |
Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die drei Argumente akzeptiert. |
Call(Expression, String, Type[], Expression[]) |
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode durch das Aufrufen der entsprechenden Factorymethode darstellt. |
Call(Expression, MethodInfo, Expression, Expression) |
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die zwei Argumente akzeptiert. |
Call(MethodInfo, Expression, Expression, Expression, Expression) |
Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die vier Argumente akzeptiert. |
Call(Expression, MethodInfo, Expression[]) |
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die Argumente akzeptiert. |
Call(Expression, MethodInfo, IEnumerable<Expression>) |
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die Argumente akzeptiert. |
Call(MethodInfo, Expression[]) |
Erstellt eine MethodCallExpression, die einen Aufruf einer |
Call(MethodInfo, Expression) |
Erstellt eine MethodCallExpression, die einen Aufruf einer |
Call(MethodInfo, IEnumerable<Expression>) |
Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode (Shared in Visual Basic) darstellt. |
Call(Expression, MethodInfo) |
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die keine Argumente akzeptiert. |
Call(MethodInfo, Expression, Expression) |
Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die zwei Argumente akzeptiert. |
Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die fünf Argumente akzeptiert.
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.
- arg0
- Expression
Das Expression, das das erste Argument darstellt.
- arg1
- Expression
Das Expression, das das zweite Argument darstellt.
- arg2
- Expression
Das Expression, das das dritte Argument darstellt.
- arg3
- Expression
Das Expression, das das vierte Argument darstellt.
- arg4
- Expression
Das Expression, das das fünfte Argument darstellt.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Method-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
method
ist NULL.
Gilt für:
Call(Expression, MethodInfo, Expression, Expression, Expression)
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die drei Argumente akzeptiert.
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. (Übergeben Sie NULL für eine statische Methode bzw. eine Shared-Methode in Visual Basic.)
- method
- MethodInfo
Das MethodInfo, das die Zielmethode darstellt.
- arg0
- Expression
Das Expression, das das erste Argument darstellt.
- arg1
- Expression
Das Expression, das das zweite Argument darstellt.
- arg2
- Expression
Das Expression, das das dritte Argument darstellt.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Method-Eigenschaft auf die angegebenen Werte festgelegt sind.
Gilt für:
Call(Type, String, Type[], Expression[])
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer static
-Methode (Shared
in Visual Basic) durch das Aufrufen der entsprechenden Factorymethode darstellt.
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.
- methodName
- String
Der Name der Methode.
- typeArguments
- Type[]
Ein Array von Type-Objekten, die die Typparameter der generischen Methode angeben. Dieses Argument muss NULL sein, wenn durch methodName eine nicht generische Methode angegeben wird.
- arguments
- Expression[]
Ein Array von Expression-Objekten, das die Argumente der Methode darstellt.
Gibt zurück
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.
Ausnahmen
type
oder methodName
ist 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.
- oder -
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.
Hinweise
Die Type Eigenschaft des resultierenden MethodCallExpression ist gleich dem Rückgabetyp der Methode, die durch methodName
bezeichnet wird. Die Object-Eigenschaft ist null
.
Gilt für:
Call(MethodInfo, Expression, Expression, Expression)
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die drei Argumente akzeptiert.
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.
- arg0
- Expression
Das Expression, das das erste Argument darstellt.
- arg1
- Expression
Das Expression, das das zweite Argument darstellt.
- arg2
- Expression
Das Expression, das das dritte Argument darstellt.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Method-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
method
ist NULL.
Gilt für:
Call(Expression, String, Type[], Expression[])
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode durch das Aufrufen der entsprechenden Factorymethode darstellt.
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.
- methodName
- String
Der Name der Methode.
- typeArguments
- Type[]
Ein Array von Type-Objekten, die die Typparameter der generischen Methode angeben. Dieses Argument muss NULL sein, wenn durch methodName eine nicht generische Methode angegeben wird.
- arguments
- Expression[]
Ein Array von Expression-Objekten, das die Argumente der Methode darstellt.
Gibt zurück
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.
Ausnahmen
instance
oder methodName
ist 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.
- oder -
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.
Hinweise
Die Type Eigenschaft des resultierenden MethodCallExpression ist gleich dem Rückgabetyp der Methode, die durch methodName
bezeichnet wird.
Gilt für:
Call(Expression, MethodInfo, Expression, Expression)
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die zwei Argumente akzeptiert.
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. (Übergeben Sie NULL für eine statische Methode bzw. eine Shared-Methode in Visual Basic.)
- method
- MethodInfo
Das MethodInfo, das die Zielmethode darstellt.
- arg0
- Expression
Das Expression, das das erste Argument darstellt.
- arg1
- Expression
Das Expression, das das zweite Argument darstellt.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Method-Eigenschaft auf die angegebenen Werte festgelegt sind.
Beispiele
Das folgende Codebeispiel zeigt, wie Sie einen Ausdruck erstellen, der eine instance-Methode aufruft, die zwei Argumente enthält.
// 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)
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die vier Argumente akzeptiert.
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.
- arg0
- Expression
Das Expression, das das erste Argument darstellt.
- arg1
- Expression
Das Expression, das das zweite Argument darstellt.
- arg2
- Expression
Das Expression, das das dritte Argument darstellt.
- arg3
- Expression
Das Expression, das das vierte Argument darstellt.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Method-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
method
ist NULL.
Gilt für:
Call(Expression, MethodInfo, Expression[])
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die Argumente akzeptiert.
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).
- method
- MethodInfo
Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.
- arguments
- Expression[]
Ein Array von Expression-Objekten, mit denen die Arguments-Auflistung aufgefüllt wird.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Eigenschaften Object, Method und Arguments auf die angegebenen Werte festgelegt sind.
Ausnahmen
method
ist null
.
- oder -
instance
ist null
, und method
stellt eine Instanzmethode dar.
- oder -
arguments
ist nicht null
, und mindestens ein Element davon ist null
.
instance
.Type kann dem deklarierenden Typ der durch method
dargestellten Methode nicht zugewiesen werden.
- oder -
Die Anzahl der Elemente in arguments
stimmt nicht mit der Anzahl der Parameter für die durch method
dargestellte Methode dar.
- oder -
Mindestens ein Element von arguments
kann nicht dem entsprechenden Parameter für die durch method
dargestellte Methode zugewiesen werden.
Hinweise
Um einen Aufruf einer static
Methode (Shared
in Visual Basic) darzustellen, übergeben null
Sie den instance
Parameter, wenn Sie diese Methode aufrufen, oder rufen Sie stattdessen auf Call .
Wenn method
eine instance-Methode darstellt, muss die Type -Eigenschaft von instance
dem deklarierenden Typ der durch method
dargestellten Methode zugewiesen werden können.
Wenn arguments
nicht null
ist, muss sie die gleiche Anzahl von Elementen aufweisen wie die Anzahl der Parameter für die Methode, die durch dargestellt wird method
. Jedes Element in arguments
darf nicht sein null
und muss dem entsprechenden Parameter von method
zugewiesen werden können, möglicherweise nach dem Anführungszeichen.
Hinweis
Ein Element wird nur in Anführungszeichen gesetzt, wenn der entsprechende Methodenparameter vom Typ Expressionist. Anführungszeichen bedeutet, dass das Element in einen Quote Knoten umschlossen ist. Der resultierende Knoten ist ein UnaryExpression , dessen Operand -Eigenschaft das -Element von arguments
ist.
Die Arguments -Eigenschaft des resultierenden MethodCallExpression ist leer, wenn arguments
ist null
. Andernfalls enthält sie die gleichen Elemente wie arguments
, von denen einige in Anführungszeichen stehen können.
Die Type -Eigenschaft des resultierenden MethodCallExpression ist gleich dem Rückgabetyp der Methode, die durch dargestellt wird method
.
Gilt für:
Call(Expression, MethodInfo, IEnumerable<Expression>)
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die Argumente akzeptiert.
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).
- method
- MethodInfo
Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.
- arguments
- IEnumerable<Expression>
Ein IEnumerable<T>, das Expression-Objekte enthält, mit denen die Arguments-Auflistung aufgefüllt werden soll.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Eigenschaften Object, Method und Arguments auf die angegebenen Werte festgelegt sind.
Ausnahmen
method
ist null
.
- oder -
instance
ist null
, und method
stellt eine Instanzmethode dar.
instance
.Type kann dem deklarierenden Typ der durch method
dargestellten Methode nicht zugewiesen werden.
- oder -
Die Anzahl der Elemente in arguments
stimmt nicht mit der Anzahl der Parameter für die durch method
dargestellte Methode dar.
- oder -
Mindestens ein Element von arguments
kann nicht dem entsprechenden Parameter für die durch method
dargestellte Methode zugewiesen werden.
Hinweise
Um einen Aufruf einer static
Methode (Shared
in Visual Basic) darzustellen, übergeben null
Sie den instance
Parameter, wenn Sie diese Methode aufrufen, oder rufen Sie stattdessen auf Call .
Wenn method
eine instance-Methode darstellt, muss die Type -Eigenschaft von instance
dem deklarierenden Typ der durch method
dargestellten Methode zugewiesen werden können.
Wenn arguments
nicht null
ist, muss sie die gleiche Anzahl von Elementen aufweisen wie die Anzahl der Parameter für die Methode, die durch dargestellt wird method
. Jedes Element in arguments
darf nicht sein null
und muss dem entsprechenden Parameter von method
zugewiesen werden können, möglicherweise nach dem Anführungszeichen.
Hinweis
Ein Element wird nur in Anführungszeichen gesetzt, wenn der entsprechende Methodenparameter vom Typ Expressionist. Anführungszeichen bedeutet, dass das Element in einen Quote Knoten umschlossen ist. Der resultierende Knoten ist ein UnaryExpression , dessen Operand -Eigenschaft das -Element von arguments
ist.
Die Arguments -Eigenschaft des resultierenden MethodCallExpression ist leer, wenn arguments
ist null
. Andernfalls enthält sie die gleichen Elemente wie arguments
, von denen einige in Anführungszeichen stehen können.
Die Type -Eigenschaft des resultierenden MethodCallExpression ist gleich dem Rückgabetyp der Methode, die durch dargestellt wird method
.
Gilt für:
Call(MethodInfo, Expression[])
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer static
-Methode (Shared
in Visual Basic) mit Argumenten darstellt.
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.
- arguments
- Expression[]
Ein Array von Expression-Objekten, mit denen die Arguments-Auflistung aufgefüllt wird.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Method-Eigenschaft sowie die Arguments-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
method
ist null
.
Die Anzahl der Elemente in arguments
stimmt nicht mit der Anzahl der Parameter für die durch method
dargestellte Methode dar.
- oder -
Mindestens ein Element von arguments
kann nicht dem entsprechenden Parameter für die durch method
dargestellte Methode zugewiesen werden.
Hinweise
Wenn arguments
nicht null
ist, muss sie die gleiche Anzahl von Elementen aufweisen wie die Anzahl der Parameter für die Methode, die durch dargestellt wird method
. Jedes Element in arguments
darf nicht sein null
und muss dem entsprechenden Parameter von method
zugewiesen werden können, möglicherweise nach dem Anführungszeichen.
Hinweis
Ein Element wird nur in Anführungszeichen gesetzt, wenn der entsprechende Methodenparameter vom Typ Expressionist. Anführungszeichen bedeutet, dass das Element in einen Quote Knoten umschlossen ist. Der resultierende Knoten ist ein UnaryExpression , dessen Operand -Eigenschaft das -Element von arguments
ist.
Die Arguments -Eigenschaft des resultierenden MethodCallExpression ist leer, wenn arguments
ist null
. Andernfalls enthält sie die gleichen Elemente wie arguments
, von denen einige in Anführungszeichen stehen können.
Die Type -Eigenschaft des resultierenden MethodCallExpression ist gleich dem Rückgabetyp der Methode, die durch dargestellt wird method
. Die Object-Eigenschaft ist null
.
Gilt für:
Call(MethodInfo, Expression)
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer static
-Methode (Shared
in Visual Basic) mit einem Argument darstellt.
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.
- arg0
- Expression
Das Expression, das das erste Argument darstellt.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Method-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
method
ist NULL.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie Sie einen Ausdruck erstellen, der eine static
(Shared
in Visual Basic) -Methode aufruft, die ein Argument akzeptiert.
// 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>)
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode (Shared in Visual Basic) darstellt.
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.
- arguments
- IEnumerable<Expression>
Ein Auflistung von Expression, die die Aufrufargumente darstellt.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Method-Eigenschaft auf die angegebenen Werte festgelegt sind.
Gilt für:
Call(Expression, MethodInfo)
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer Methode darstellt, die keine Argumente akzeptiert.
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).
- method
- MethodInfo
Ein MethodInfo, auf das die Method-Eigenschaft festgelegt werden soll.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Method-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
method
ist null
.
- oder -
instance
ist null
, und method
stellt eine Instanzmethode dar.
instance
.Type kann dem deklarierenden Typ der durch method
dargestellten Methode nicht zugewiesen werden.
Beispiele
Im folgenden Codebeispiel wird gezeigt, wie Sie einen Ausdruck erstellen, der eine Methode ohne Argumente aufruft.
// 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
Um einen Aufruf einer static
(Shared
in Visual Basic)-Methode darzustellen, übergeben null
Sie beim Aufrufen dieser Methode für den instance
-Parameter.
Wenn method
eine instance-Methode darstellt, muss die Type -Eigenschaft von instance
dem deklarierenden Typ der durch method
dargestellten Methode zugewiesen werden können.
Die Arguments -Eigenschaft des resultierenden MethodCallExpression ist leer. Die Type -Eigenschaft ist gleich dem Rückgabetyp der Methode, die durch dargestellt wird method
.
Gilt für:
Call(MethodInfo, Expression, Expression)
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
- Quelle:
- MethodCallExpression.cs
Erstellt eine MethodCallExpression, die einen Aufruf einer statischen Methode darstellt, die zwei Argumente akzeptiert.
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.
- arg0
- Expression
Das Expression, das das erste Argument darstellt.
- arg1
- Expression
Das Expression, das das zweite Argument darstellt.
Gibt zurück
Ein MethodCallExpression, bei dem die NodeType-Eigenschaft gleich Call ist und die Object-Eigenschaft sowie die Method-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
method
ist NULL.