Expression.Call Methode

Definitie

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 static (Shared in Visual Basic) vertegenwoordigt door de juiste factory-methode aan te roepen.

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 static (Shared in Visual Basic) vertegenwoordigt die argumenten bevat.

Call(MethodInfo, Expression)

Hiermee maakt u een MethodCallExpression die een aanroep van een static (Shared in Visual Basic) vertegenwoordigt die één argument gebruikt.

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.

Van toepassing op