Expression.Call Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee maak je een MethodCallExpression.
Overloads
| Name | Description |
|---|---|
| Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) |
Hiermee maakt u een MethodCallExpression aanroep naar een statische methode die vijf argumenten gebruikt. |
| Call(Expression, MethodInfo, Expression, Expression, Expression) |
Hiermee maakt u een MethodCallExpression aanroep naar een methode die drie argumenten gebruikt. |
| Call(Type, String, Type[], Expression[]) |
Hiermee maakt u een MethodCallExpression die een aanroep van een |
| Call(MethodInfo, Expression, Expression, Expression) |
Hiermee maakt u een MethodCallExpression aanroep naar een statische methode die drie argumenten gebruikt. |
| Call(Expression, String, Type[], Expression[]) |
Hiermee maakt u een MethodCallExpression aanroep naar een methode door de juiste factory-methode aan te roepen. |
| Call(Expression, MethodInfo, Expression, Expression) |
Hiermee maakt u een MethodCallExpression aanroep naar een methode die twee argumenten gebruikt. |
| Call(MethodInfo, Expression, Expression, Expression, Expression) |
Hiermee maakt u een MethodCallExpression aanroep naar een statische methode die vier argumenten gebruikt. |
| Call(Expression, MethodInfo, Expression[]) |
Hiermee maakt u een MethodCallExpression aanroep naar een methode die argumenten gebruikt. |
| Call(Expression, MethodInfo, IEnumerable<Expression>) |
Hiermee maakt u een MethodCallExpression aanroep naar een methode die argumenten gebruikt. |
| Call(MethodInfo, Expression[]) |
Hiermee maakt u een MethodCallExpression die een aanroep naar een |
| Call(MethodInfo, Expression) |
Hiermee maakt u een MethodCallExpression die een aanroep van een |
| Call(MethodInfo, IEnumerable<Expression>) |
Hiermee maakt u een MethodCallExpression die een aanroep naar een statische methode (Gedeeld in Visual Basic) vertegenwoordigt. |
| Call(Expression, MethodInfo) |
Hiermee maakt u een MethodCallExpression aanroep naar een methode die geen argumenten accepteert. |
| Call(MethodInfo, Expression, Expression) |
Hiermee maakt u een MethodCallExpression aanroep naar een statische methode die twee argumenten gebruikt. |
Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)
Hiermee maakt u een MethodCallExpression aanroep naar een statische methode die vijf argumenten gebruikt.
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
Parameters
- method
- MethodInfo
A MethodInfo om de Method eigenschap in te stellen die gelijk is aan.
- arg0
- Expression
De Expression waarde die het eerste argument vertegenwoordigt.
- arg1
- Expression
Het Expression argument dat het tweede argument vertegenwoordigt.
- arg2
- Expression
Het Expression argument dat het derde argument vertegenwoordigt.
- arg3
- Expression
Het Expression argument dat het vierde argument vertegenwoordigt.
- arg4
- Expression
Het Expression argument dat het vijfde argument vertegenwoordigt.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Object eigenschappen die Method zijn ingesteld op de opgegeven waarden.
Uitzonderingen
method is nul.
Van toepassing op
Call(Expression, MethodInfo, Expression, Expression, Expression)
Hiermee maakt u een MethodCallExpression aanroep naar een methode die drie argumenten gebruikt.
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
Parameters
- instance
- Expression
Een Expression die het exemplaar opgeeft voor een exemplaaraanroep. (geef null door voor een statische methode (Gedeeld in Visual Basic).
- method
- MethodInfo
De MethodInfo methode die de doelmethode vertegenwoordigt.
- arg0
- Expression
De Expression waarde die het eerste argument vertegenwoordigt.
- arg1
- Expression
Het Expression argument dat het tweede argument vertegenwoordigt.
- arg2
- Expression
Het Expression argument dat het derde argument vertegenwoordigt.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Object eigenschappen die Method zijn ingesteld op de opgegeven waarden.
Van toepassing op
Call(Type, String, Type[], Expression[])
Hiermee maakt u een MethodCallExpression die een aanroep van een static (Shared in Visual Basic) vertegenwoordigt door de juiste factory-methode aan te roepen.
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);
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
Parameters
- type
- Type
Het type dat de opgegeven methode static (Shared in Visual Basic) bevat.
- methodName
- String
De naam van de methode.
- typeArguments
- Type[]
Een matrix met Type objecten die de typeparameters van de algemene methode opgeven. Dit argument moet null zijn wanneer methodName een niet-algemene methode opgeeft.
- arguments
- Expression[]
Een matrix met Expression objecten die de argumenten voor de methode vertegenwoordigen.
Retouren
Een MethodCallExpression met de eigenschap NodeType gelijk aan Call, de eigenschap Method ingesteld op de methode MethodInfo die de opgegeven methode static (Shared in Visual Basic) vertegenwoordigt en de eigenschap Arguments ingesteld op de opgegeven argumenten.
Uitzonderingen
type of methodName is null.
Geen methode waarvan de naam is methodName, waarvan de typeparameters overeenkomen typeArgumentsen waarvan de parametertypen overeenkomen arguments in type of de basistypen.
– of –
Meer dan één methode waarvan de naam is methodName, waarvan de typeparameters overeenkomen typeArgumentsen waarvan de parametertypen overeenkomen arguments in type of de basistypen.
Opmerkingen
De Type eigenschap van het resulterende MethodCallExpression is gelijk aan het retourtype van de methode die wordt aangeduid door methodName. De eigenschap Object is null.
Van toepassing op
Call(MethodInfo, Expression, Expression, Expression)
Hiermee maakt u een MethodCallExpression aanroep naar een statische methode die drie argumenten gebruikt.
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
Parameters
- method
- MethodInfo
A MethodInfo om de Method eigenschap in te stellen die gelijk is aan.
- arg0
- Expression
De Expression waarde die het eerste argument vertegenwoordigt.
- arg1
- Expression
Het Expression argument dat het tweede argument vertegenwoordigt.
- arg2
- Expression
Het Expression argument dat het derde argument vertegenwoordigt.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Object eigenschappen die Method zijn ingesteld op de opgegeven waarden.
Uitzonderingen
method is nul.
Van toepassing op
Call(Expression, String, Type[], Expression[])
Hiermee maakt u een MethodCallExpression aanroep naar een methode door de juiste factory-methode aan te roepen.
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);
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
Parameters
- instance
- Expression
Een Expression waarvan Type de eigenschapswaarde wordt gezocht naar een specifieke methode.
- methodName
- String
De naam van de methode.
- typeArguments
- Type[]
Een matrix met Type objecten die de typeparameters van de algemene methode opgeven. Dit argument moet null zijn wanneer methodName een niet-algemene methode opgeeft.
- arguments
- Expression[]
Een matrix met Expression objecten die de argumenten voor de methode vertegenwoordigen.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call, de Object eigenschap gelijk aan instance, Method ingesteld op de MethodInfo opgegeven instantiemethode en Arguments ingesteld op de opgegeven argumenten.
Uitzonderingen
instance of methodName is null.
Er is geen methode waarvan de naam is methodName, waarvan de typeparameters overeenkomen typeArgumentsen waarvan de parametertypen overeenkomen arguments in instance. Typ of de basistypen.
– of –
Meer dan één methode waarvan de naam is methodName, waarvan de typeparameters overeenkomen typeArgumentsen waarvan de parametertypen overeenkomen arguments , wordt gevonden in instance. Typ of de basistypen.
Opmerkingen
De Type eigenschap van het resulterende MethodCallExpression is gelijk aan het retourtype van de methode die wordt aangeduid door methodName.
Van toepassing op
Call(Expression, MethodInfo, Expression, Expression)
Hiermee maakt u een MethodCallExpression aanroep naar een methode die twee argumenten gebruikt.
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
Parameters
- instance
- Expression
Een Expression die het exemplaar opgeeft voor een exemplaaraanroep. (geef null door voor een statische methode (Gedeeld in Visual Basic).
- method
- MethodInfo
De MethodInfo methode die de doelmethode vertegenwoordigt.
- arg0
- Expression
De Expression waarde die het eerste argument vertegenwoordigt.
- arg1
- Expression
Het Expression argument dat het tweede argument vertegenwoordigt.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Object eigenschappen die Method zijn ingesteld op de opgegeven waarden.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een expressie maakt waarmee een exemplaarmethode met twee argumenten wordt aangeroepen.
// 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
Van toepassing op
Call(MethodInfo, Expression, Expression, Expression, Expression)
Hiermee maakt u een MethodCallExpression aanroep naar een statische methode die vier argumenten gebruikt.
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
Parameters
- method
- MethodInfo
A MethodInfo om de Method eigenschap in te stellen die gelijk is aan.
- arg0
- Expression
De Expression waarde die het eerste argument vertegenwoordigt.
- arg1
- Expression
Het Expression argument dat het tweede argument vertegenwoordigt.
- arg2
- Expression
Het Expression argument dat het derde argument vertegenwoordigt.
- arg3
- Expression
Het Expression argument dat het vierde argument vertegenwoordigt.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Object eigenschappen die Method zijn ingesteld op de opgegeven waarden.
Uitzonderingen
method is nul.
Van toepassing op
Call(Expression, MethodInfo, Expression[])
Hiermee maakt u een MethodCallExpression aanroep naar een methode die argumenten gebruikt.
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);
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
Parameters
- instance
- Expression
Een Expression waarmee het exemplaar wordt opgegeven voor een aanroep van een exemplaarmethode (geef null door voor een static (Shared in Visual Basic) methode).
- method
- MethodInfo
A MethodInfo om de Method eigenschap in te stellen die gelijk is aan.
- arguments
- Expression[]
Een matrix met Expression objecten die moeten worden gebruikt om de Arguments verzameling te vullen.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Object, Methoden Arguments eigenschappen die zijn ingesteld op de opgegeven waarden.
Uitzonderingen
method is null.
– of –
instance is null en method vertegenwoordigt een instantiemethode.
– of –
arguments is niet null en een of meer elementen ervan zijn null.
instance. Het type kan niet worden toegewezen aan het declaratietype van de methode die wordt vertegenwoordigd door method.
– of –
Het aantal elementen in arguments is niet gelijk aan het aantal parameters voor de methode die wordt vertegenwoordigd door method.
– of –
Een of meer van de elementen van arguments is niet toe te wijzen aan de bijbehorende parameter voor de methode die wordt vertegenwoordigd door method.
Opmerkingen
Als u een aanroep naar een methode static (Shared in Visual Basic) wilt weergeven, geeft u null door voor de parameter instance wanneer u deze methode aanroept of roept u Call aan.
Als method dit een instantiemethode vertegenwoordigt, moet de Type eigenschap van instance deze methode kunnen worden toegewezen aan het declaratietype van de methode die wordt vertegenwoordigd door method.
Als arguments dat niet nullhet is, moet het hetzelfde aantal elementen hebben als het aantal parameters voor de methode die wordt vertegenwoordigd door method. Elk element in arguments mag niet en null moet worden toegewezen aan de bijbehorende parameter van method, mogelijk na het aanhalen van een quotering.
Note
Een element wordt alleen aangeroepen als de bijbehorende methodeparameter van het type Expressionis. Het aanhalingsteken betekent dat het element in een Quote knooppunt wordt verpakt. Het resulterende knooppunt is een UnaryExpression waarvan Operand de eigenschap het element is van arguments.
De Arguments eigenschap van het resulterende MethodCallExpression is leeg als arguments dat het is null. Anders bevat het dezelfde elementen als arguments, waarvan sommige kunnen worden geciteerd.
De Type eigenschap van het resulterende MethodCallExpression is gelijk aan het retourtype van de methode die wordt vertegenwoordigd door method.
Van toepassing op
Call(Expression, MethodInfo, IEnumerable<Expression>)
Hiermee maakt u een MethodCallExpression aanroep naar een methode die argumenten gebruikt.
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
Parameters
- instance
- Expression
Een Expression om de eigenschap Object in te stellen op (geef null door voor een static (Shared in Visual Basic) methode).
- method
- MethodInfo
A MethodInfo om de Method eigenschap in te stellen die gelijk is aan.
- arguments
- IEnumerable<Expression>
Een IEnumerable<T> met Expression objecten die moeten worden gebruikt om de Arguments verzameling te vullen.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Object, Methoden Arguments eigenschappen die zijn ingesteld op de opgegeven waarden.
Uitzonderingen
method is null.
– of –
instance is null en method vertegenwoordigt een instantiemethode.
instance. Het type kan niet worden toegewezen aan het declaratietype van de methode die wordt vertegenwoordigd door method.
– of –
Het aantal elementen in arguments is niet gelijk aan het aantal parameters voor de methode die wordt vertegenwoordigd door method.
– of –
Een of meer van de elementen van arguments is niet toe te wijzen aan de bijbehorende parameter voor de methode die wordt vertegenwoordigd door method.
Opmerkingen
Als u een aanroep naar een methode static (Shared in Visual Basic) wilt weergeven, geeft u null door voor de parameter instance wanneer u deze methode aanroept of roept u Call aan.
Als method dit een instantiemethode vertegenwoordigt, moet de Type eigenschap van instance deze methode kunnen worden toegewezen aan het declaratietype van de methode die wordt vertegenwoordigd door method.
Als arguments dat niet nullhet is, moet het hetzelfde aantal elementen hebben als het aantal parameters voor de methode die wordt vertegenwoordigd door method. Elk element in arguments mag niet en null moet worden toegewezen aan de bijbehorende parameter van method, mogelijk na het aanhalen van een quotering.
Note
Een element wordt alleen aangeroepen als de bijbehorende methodeparameter van het type Expressionis. Het aanhalingsteken betekent dat het element in een Quote knooppunt wordt verpakt. Het resulterende knooppunt is een UnaryExpression waarvan Operand de eigenschap het element is van arguments.
De Arguments eigenschap van het resulterende MethodCallExpression is leeg als arguments dat het is null. Anders bevat het dezelfde elementen als arguments, waarvan sommige kunnen worden geciteerd.
De Type eigenschap van het resulterende MethodCallExpression is gelijk aan het retourtype van de methode die wordt vertegenwoordigd door method.
Van toepassing op
Call(MethodInfo, Expression[])
Hiermee maakt u een MethodCallExpression die een aanroep naar een static (Shared in Visual Basic) vertegenwoordigt die argumenten bevat.
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);
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
Parameters
- method
- MethodInfo
Een MethodInfo die een static (Shared in Visual Basic) vertegenwoordigt om de eigenschap Method in te stellen die gelijk is aan.
- arguments
- Expression[]
Een matrix met Expression objecten die moeten worden gebruikt om de Arguments verzameling te vullen.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Method eigenschappen die Arguments zijn ingesteld op de opgegeven waarden.
Uitzonderingen
method is null.
Het aantal elementen in arguments is niet gelijk aan het aantal parameters voor de methode die wordt vertegenwoordigd door method.
– of –
Een of meer van de elementen van arguments is niet toe te wijzen aan de bijbehorende parameter voor de methode die wordt vertegenwoordigd door method.
Opmerkingen
Als arguments dat niet nullhet is, moet het hetzelfde aantal elementen hebben als het aantal parameters voor de methode die wordt vertegenwoordigd door method. Elk element in arguments mag niet en null moet worden toegewezen aan de bijbehorende parameter van method, mogelijk na het aanhalen van een quotering.
Note
Een element wordt alleen aangeroepen als de bijbehorende methodeparameter van het type Expressionis. Het aanhalingsteken betekent dat het element in een Quote knooppunt wordt verpakt. Het resulterende knooppunt is een UnaryExpression waarvan Operand de eigenschap het element is van arguments.
De Arguments eigenschap van het resulterende MethodCallExpression is leeg als arguments dat het is null. Anders bevat het dezelfde elementen als arguments, waarvan sommige kunnen worden geciteerd.
De Type eigenschap van het resulterende MethodCallExpression is gelijk aan het retourtype van de methode die wordt vertegenwoordigd door method. De eigenschap Object is null.
Van toepassing op
Call(MethodInfo, Expression)
Hiermee maakt u een MethodCallExpression die een aanroep van een static (Shared in Visual Basic) vertegenwoordigt die één argument gebruikt.
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
Parameters
- method
- MethodInfo
A MethodInfo om de Method eigenschap in te stellen die gelijk is aan.
- arg0
- Expression
De Expression waarde die het eerste argument vertegenwoordigt.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Object eigenschappen die Method zijn ingesteld op de opgegeven waarden.
Uitzonderingen
method is nul.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een expressie maakt waarmee een methode static (Shared in Visual Basic) wordt aangeroepen die één argument gebruikt.
// 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
Van toepassing op
Call(MethodInfo, IEnumerable<Expression>)
Hiermee maakt u een MethodCallExpression die een aanroep naar een statische methode (Gedeeld in Visual Basic) vertegenwoordigt.
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
Parameters
- method
- MethodInfo
De MethodInfo methode die de doelmethode vertegenwoordigt.
- arguments
- IEnumerable<Expression>
Een verzameling van Expression die argumenten vertegenwoordigt de argumenten voor aanroepen.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Object eigenschappen die Method zijn ingesteld op de opgegeven waarden.
Van toepassing op
Call(Expression, MethodInfo)
Hiermee maakt u een MethodCallExpression aanroep naar een methode die geen argumenten accepteert.
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
Parameters
- instance
- Expression
Een Expression waarmee het exemplaar wordt opgegeven voor een aanroep van een exemplaarmethode (geef null door voor een static (Shared in Visual Basic) methode).
- method
- MethodInfo
A MethodInfo om de Method eigenschap in te stellen die gelijk is aan.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Object eigenschappen die Method zijn ingesteld op de opgegeven waarden.
Uitzonderingen
method is null.
– of –
instance is null en method vertegenwoordigt een instantiemethode.
instance. Het type kan niet worden toegewezen aan het declaratietype van de methode die wordt vertegenwoordigd door method.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u een expressie maakt waarmee een methode zonder argumenten wordt aangeroepen.
// 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
Opmerkingen
Als u een aanroep naar een methode static (Shared in Visual Basic) wilt weergeven, geeft u null door voor de parameter instance wanneer u deze methode aanroept.
Als method dit een instantiemethode vertegenwoordigt, moet de Type eigenschap van instance deze methode kunnen worden toegewezen aan het declaratietype van de methode die wordt vertegenwoordigd door method.
De Arguments eigenschap van het resulterende MethodCallExpression is leeg. De Type eigenschap is gelijk aan het retourtype van de methode die wordt vertegenwoordigd door method.
Van toepassing op
Call(MethodInfo, Expression, Expression)
Hiermee maakt u een MethodCallExpression aanroep naar een statische methode die twee argumenten gebruikt.
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
Parameters
- method
- MethodInfo
A MethodInfo om de Method eigenschap in te stellen die gelijk is aan.
- arg0
- Expression
De Expression waarde die het eerste argument vertegenwoordigt.
- arg1
- Expression
Het Expression argument dat het tweede argument vertegenwoordigt.
Retouren
Een MethodCallExpression met de NodeType eigenschap gelijk aan Call en de Object eigenschappen die Method zijn ingesteld op de opgegeven waarden.
Uitzonderingen
method is nul.