Expression.Call Méthode

Définition

Surcharges

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

Crée un MethodCallExpression qui représente un appel à une méthode statique prenant cinq arguments.

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

Crée un MethodCallExpression qui représente un appel à une méthode qui prend trois arguments.

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

Crée un MethodCallExpression qui représente un appel à une méthode static (Shared en Visual Basic) en appelant la méthode de fabrique appropriée.

Call(MethodInfo, Expression, Expression, Expression)

Crée un MethodCallExpression qui représente un appel à une méthode statique prenant trois arguments.

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

Crée un MethodCallExpression qui représente un appel à une méthode en appelant la méthode de fabrique appropriée.

Call(Expression, MethodInfo, Expression, Expression)

Crée un MethodCallExpression qui représente un appel à une méthode qui prend deux arguments.

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

Crée un MethodCallExpression qui représente un appel à une méthode statique prenant quatre arguments.

Call(Expression, MethodInfo, Expression[])

Crée un MethodCallExpression qui représente un appel à une méthode qui prend des arguments.

Call(Expression, MethodInfo, IEnumerable<Expression>)

Crée un MethodCallExpression qui représente un appel à une méthode qui prend des arguments.

Call(MethodInfo, Expression[])

Crée un MethodCallExpression qui représente un appel à une méthode static (Shared en Visual Basic) comportant des arguments.

Call(MethodInfo, Expression)

Crée un MethodCallExpression qui représente un appel à une méthode static (Shared en Visual Basic) qui prend un seul argument.

Call(MethodInfo, IEnumerable<Expression>)

Crée un MethodCallExpression qui représente un appel à une méthode statique (méthode partagée en Visual Basic).

Call(Expression, MethodInfo)

Crée un MethodCallExpression qui représente un appel à une méthode qui ne prend aucun argument.

Call(MethodInfo, Expression, Expression)

Crée un MethodCallExpression qui représente un appel à une méthode statique prenant deux arguments.

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

Crée un MethodCallExpression qui représente un appel à une méthode statique prenant cinq arguments.

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

Paramètres

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.

arg0
Expression

Expression qui représente le premier argument.

arg1
Expression

Expression qui représente le deuxième argument.

arg2
Expression

Expression qui représente le troisième argument.

arg3
Expression

Expression qui représente le quatrième argument.

arg4
Expression

Expression qui représente le premier argument.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object et Method ont les valeurs spécifiées.

Exceptions

method a la valeur null.

S’applique à

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

Crée un MethodCallExpression qui représente un appel à une méthode qui prend trois arguments.

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

Paramètres

instance
Expression

Expression qui spécifie l'instance d'un appel d'instance. (Passez la valeur Null pour une méthode statique (méthode partagée en Visual Basic.)

method
MethodInfo

MethodInfo qui représente la méthode cible.

arg0
Expression

Expression qui représente le premier argument.

arg1
Expression

Expression qui représente le deuxième argument.

arg2
Expression

Expression qui représente le troisième argument.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object et Method ont les valeurs spécifiées.

S’applique à

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

Crée un MethodCallExpression qui représente un appel à une méthode static (Shared en Visual Basic) en appelant la méthode de fabrique appropriée.

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

Paramètres

type
Type

Type contenant la méthode static (Shared dans Visual Basic) spécifiée.

methodName
String

Nom de la méthode.

typeArguments
Type[]

Tableau d'objets Type spécifiant les paramètres de type de la méthode générique. Cet argument doit être null lorsque methodName spécifie une méthode non générique.

arguments
Expression[]

Tableau d’objets Expression représentant les arguments de la méthode.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call, dont la propriété Method a pour valeur MethodInfo qui représente la méthode static (Shared en Visual Basic) spécifiée, et dont la propriété Arguments a pour valeur les arguments spécifiés.

Exceptions

type ou methodName est null.

Aucune méthode appelée methodName, dont les paramètres de type correspondent à typeArguments et dont les types de paramètres correspondent à arguments n'est trouvée dans type ou ses types de base.

  • ou - Plusieurs méthodes appelées methodName, dont les paramètres de type correspondent à typeArguments et dont les types de paramètres correspondent à arguments sont trouvées dans type ou ses types de base.

Remarques

La Type propriété du résultat MethodCallExpression est égale au type de retour de la méthode indiquée par methodName. La propriété Object a la valeur null.

S’applique à

Call(MethodInfo, Expression, Expression, Expression)

Crée un MethodCallExpression qui représente un appel à une méthode statique prenant trois arguments.

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

Paramètres

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.

arg0
Expression

Expression qui représente le premier argument.

arg1
Expression

Expression qui représente le deuxième argument.

arg2
Expression

Expression qui représente le troisième argument.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object et Method ont les valeurs spécifiées.

Exceptions

method a la valeur null.

S’applique à

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

Crée un MethodCallExpression qui représente un appel à une méthode en appelant la méthode de fabrique appropriée.

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

Paramètres

instance
Expression

Expression dont la valeur de propriété Type fera l'objet d'une recherche de méthode spécifique.

methodName
String

Nom de la méthode.

typeArguments
Type[]

Tableau d'objets Type spécifiant les paramètres de type de la méthode générique. Cet argument doit être null lorsque methodName spécifie une méthode non générique.

arguments
Expression[]

Tableau d’objets Expression représentant les arguments de la méthode.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call, dont la propriété Object est égale à instance, dont Method a pour valeur MethodInfo qui représente la méthode d'instance spécifiée, et dont Arguments a pour valeur les arguments spécifiés.

Exceptions

instance ou methodName est null.

Aucune méthode appelée methodName, dont les paramètres de type correspondent à typeArguments et dont les types de paramètres correspondent à arguments n'est trouvée dans instance.Type ou ses types de base.

  • ou - Plusieurs méthodes appelées methodName, dont les paramètres de type correspondent à typeArguments et dont les types de paramètres correspondent à arguments sont trouvées dans instance.Type ou ses types de base.

Remarques

La Type propriété du résultat MethodCallExpression est égale au type de retour de la méthode indiquée par methodName.

S’applique à

Call(Expression, MethodInfo, Expression, Expression)

Crée un MethodCallExpression qui représente un appel à une méthode qui prend deux arguments.

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

Paramètres

instance
Expression

Expression qui spécifie l'instance d'un appel d'instance. (Passez la valeur Null pour une méthode statique (méthode partagée en Visual Basic.)

method
MethodInfo

MethodInfo qui représente la méthode cible.

arg0
Expression

Expression qui représente le premier argument.

arg1
Expression

Expression qui représente le deuxième argument.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object et Method ont les valeurs spécifiées.

Exemples

L’exemple de code suivant montre comment créer une expression qui appelle une méthode d’instance qui a deux arguments.

// Add the following directive to your file:
// using System.Linq.Expressions;
public class SampleClass
{
    public int AddIntegers(int arg1, int arg2)
    {
        return arg1 + arg2;
    }
}

static public void TestCall()
{
    // This expression represents a call to an instance method that has two arguments.
    // The first argument is an expression that creates a new object of the specified type.
    Expression callExpr = Expression.Call(
        Expression.New(typeof(SampleClass)),
        typeof(SampleClass).GetMethod("AddIntegers", new Type[] { typeof(int), typeof(int) }),
        Expression.Constant(1),
        Expression.Constant(2)
        );

    // Print out the expression.
    Console.WriteLine(callExpr.ToString());

    // The following statement first creates an expression tree,
    // then compiles it, and then executes it.
    Console.WriteLine(Expression.Lambda<Func<int>>(callExpr).Compile()());

    // This code example produces the following output:
    //
    // new SampleClass().AddIntegers(1, 2)
    // 3
}
' Add the following directive to your file:
' Imports System.Linq.Expressions  

Public Class SampleClass
    Public Function AddIntegers(ByVal arg1 As Integer, ByVal arg2 As Integer) As Integer
        Return (arg1 + arg2)
    End Function
End Class
Public Shared Sub TestCall()
    ' This expression represents a call to an instance method that has two arguments.
    ' The first argument is an expression that creates a new object of the specified type.
    Dim callExpr As Expression = Expression.Call(
        Expression.[New](GetType(SampleClass)),
        GetType(SampleClass).GetMethod("AddIntegers", New Type() {GetType(Integer), GetType(Integer)}),
        Expression.Constant(1),
        Expression.Constant(2)
      )

    ' Print the expression.
    Console.WriteLine(callExpr.ToString())

    ' The following statement first creates an expression tree,
    ' then compiles it, and then executes it.
    Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(callExpr).Compile()())
End Sub

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

S’applique à

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

Crée un MethodCallExpression qui représente un appel à une méthode statique prenant quatre arguments.

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

Paramètres

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.

arg0
Expression

Expression qui représente le premier argument.

arg1
Expression

Expression qui représente le deuxième argument.

arg2
Expression

Expression qui représente le troisième argument.

arg3
Expression

Expression qui représente le quatrième argument.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object et Method ont les valeurs spécifiées.

Exceptions

method a la valeur null.

S’applique à

Call(Expression, MethodInfo, Expression[])

Crée un MethodCallExpression qui représente un appel à une méthode qui prend des arguments.

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

Paramètres

instance
Expression

Expression qui spécifie l'instance d'un appel de méthode d'instance (passez null pour une méthode static (Shared en Visual Basic)).

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.

arguments
Expression[]

Tableau d'objets Expression à utiliser pour remplir la collection Arguments.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object, Method et Arguments ont les valeurs spécifiées.

Exceptions

method a la valeur null.

  • ou - instance est null et method représente une méthode d’instance.

  • ou - arguments n’est pas null et un ou plusieurs de ses éléments sont null.

instance. Le type ne peut pas être affecté au type de la méthode représentée par method.

  • ou - Le nombre d’éléments dans arguments ne correspond pas au nombre de paramètres pour la méthode représentée par method.

  • ou - Un ou plusieurs des éléments des arguments n’est pas assignable au paramètre correspondant pour la méthode représentée par method.

Remarques

Pour représenter un appel à une static méthode (Shareddans Visual Basic), transmettez le instance paramètre lorsque vous appelez null cette méthode ou appelez Call à la place.

Si method elle représente une méthode d’instance, la Type propriété de instance doit être assignable au type de déclaration de la méthode représentée par method.

Si arguments ce n’est pas nullle cas, il doit avoir le même nombre d’éléments que le nombre de paramètres de la méthode représentée par method. Chaque élément dans arguments ne doit pas être et doit être null assignable au paramètre correspondant de method, éventuellement après le guillemet.

Notes

Un élément ne sera cité que si le paramètre de méthode correspondant est de type Expression. Le guillemet signifie que l’élément est encapsulé dans un Quote nœud. Le nœud résultant est un UnaryExpression dont Operand la propriété est l’élément .arguments

La Arguments propriété du résultat MethodCallExpression est vide si arguments elle est null. Sinon, il contient les mêmes éléments que arguments, dont certains peuvent être cités.

La Type propriété du résultat MethodCallExpression est égale au type de retour de la méthode représentée par method.

S’applique à

Call(Expression, MethodInfo, IEnumerable<Expression>)

Crée un MethodCallExpression qui représente un appel à une méthode qui prend des arguments.

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

Paramètres

instance
Expression

Expression auquel la propriété Object doit être égale (passez null pour une méthode static (Shared en Visual Basic)).

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.

arguments
IEnumerable<Expression>

IEnumerable<T> qui contient des objets Expression à utiliser pour remplir la collection Arguments.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object, Method et Arguments ont les valeurs spécifiées.

Exceptions

method a la valeur null.

  • ou - instance est null et method représente une méthode d’instance.

instance. Le type ne peut pas être affecté au type de la méthode représentée par method.

  • ou - Le nombre d’éléments dans arguments ne correspond pas au nombre de paramètres pour la méthode représentée par method.

  • ou - Un ou plusieurs des éléments des arguments n’est pas assignable au paramètre correspondant pour la méthode représentée par method.

Remarques

Pour représenter un appel à une static méthode (Shareddans Visual Basic), transmettez le instance paramètre lorsque vous appelez null cette méthode ou appelez Call à la place.

Si method elle représente une méthode d’instance, la Type propriété de instance doit être assignable au type de déclaration de la méthode représentée par method.

Si arguments ce n’est pas nullle cas, il doit avoir le même nombre d’éléments que le nombre de paramètres de la méthode représentée par method. Chaque élément dans arguments ne doit pas être et doit être null assignable au paramètre correspondant de method, éventuellement après le guillemet.

Notes

Un élément ne sera cité que si le paramètre de méthode correspondant est de type Expression. Le guillemet signifie que l’élément est encapsulé dans un Quote nœud. Le nœud résultant est un UnaryExpression dont Operand la propriété est l’élément .arguments

La Arguments propriété du résultat MethodCallExpression est vide si arguments elle est null. Sinon, il contient les mêmes éléments que arguments, dont certains peuvent être cités.

La Type propriété du résultat MethodCallExpression est égale au type de retour de la méthode représentée par method.

S’applique à

Call(MethodInfo, Expression[])

Crée un MethodCallExpression qui représente un appel à une méthode static (Shared en Visual Basic) comportant des arguments.

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

Paramètres

method
MethodInfo

MethodInfo qui représente une méthode static (Shared en Visual Basic) à laquelle la propriété Method doit être égale.

arguments
Expression[]

Tableau d'objets Expression à utiliser pour remplir la collection Arguments.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Method et Arguments ont les valeurs spécifiées.

Exceptions

method a la valeur null.

Le nombre d’éléments dans arguments ne correspond pas au nombre de paramètres pour la méthode représentée par method.

  • ou - Un ou plusieurs des éléments des arguments n’est pas assignable au paramètre correspondant pour la méthode représentée par method.

Remarques

Si arguments ce n’est pas nullle cas, il doit avoir le même nombre d’éléments que le nombre de paramètres de la méthode représentée par method. Chaque élément dans arguments ne doit pas être et doit être null assignable au paramètre correspondant de method, éventuellement après le guillemet.

Notes

Un élément ne sera cité que si le paramètre de méthode correspondant est de type Expression. Le guillemet signifie que l’élément est encapsulé dans un Quote nœud. Le nœud résultant est un UnaryExpression dont Operand la propriété est l’élément .arguments

La Arguments propriété du résultat MethodCallExpression est vide si arguments elle est null. Sinon, il contient les mêmes éléments que arguments, dont certains peuvent être cités.

La Type propriété du résultat MethodCallExpression est égale au type de retour de la méthode représentée par method. La propriété Object a la valeur null.

S’applique à

Call(MethodInfo, Expression)

Crée un MethodCallExpression qui représente un appel à une méthode static (Shared en Visual Basic) qui prend un seul argument.

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

Paramètres

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.

arg0
Expression

Expression qui représente le premier argument.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object et Method ont les valeurs spécifiées.

Exceptions

method a la valeur null.

Exemples

L’exemple suivant montre comment créer une expression qui appelle une static méthode (Shareddans Visual Basic) qui prend un argument.

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

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

static public void TestCall()
{

    //This expression represents a call to an instance method with one argument.
    Expression callExpr = Expression.Call(
                            typeof(SampleClass).GetMethod("Increment"),
                            Expression.Constant(2)
                        );

    // Print out the expression.
    Console.WriteLine(callExpr.ToString());

    // The following statement first creates an expression tree,
    // then compiles it, and then executes it.
    Console.WriteLine(Expression.Lambda<Func<int>>(callExpr).Compile()());

    // This code example produces the following output:
    //
    // Increment(2)
    // 3
}
' Add the following directive to your file:
' Imports System.Linq.Expressions  

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

    ' Print the expression.
    Console.WriteLine(callExpr.ToString())

    ' The following statement first creates an expression tree,
    ' then compiles it, and then executes it.
    Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(callExpr).Compile()())
End Sub

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

S’applique à

Call(MethodInfo, IEnumerable<Expression>)

Crée un MethodCallExpression qui représente un appel à une méthode statique (méthode partagée en Visual Basic).

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

Paramètres

method
MethodInfo

MethodInfo qui représente la méthode cible.

arguments
IEnumerable<Expression>

Collection de Expression qui représente les arguments de l'appel.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object et Method ont les valeurs spécifiées.

S’applique à

Call(Expression, MethodInfo)

Crée un MethodCallExpression qui représente un appel à une méthode qui ne prend aucun argument.

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

Paramètres

instance
Expression

Expression qui spécifie l'instance d'un appel de méthode d'instance (passez null pour une méthode static (Shared en Visual Basic)).

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object et Method ont les valeurs spécifiées.

Exceptions

method a la valeur null.

  • ou - instance est null et method représente une méthode d’instance.

instance. Le type ne peut pas être affecté au type de la méthode représentée par method.

Exemples

L’exemple de code suivant montre comment créer une expression qui appelle une méthode sans arguments.

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

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

// Print out the expression.
Console.WriteLine(callExpr.ToString());

// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<String>>(callExpr).Compile()());

// This code example produces the following output:
//
// "sample string".ToUpper
// SAMPLE STRING
' Add the following directive to your file:
' Imports System.Linq.Expressions   

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

' Print the expression.
Console.WriteLine(callExpr.ToString())

' The following statement first creates an expression tree,
' then compiles it, and then executes it.  
Console.WriteLine(Expression.Lambda(Of Func(Of String))(callExpr).Compile()())

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

Remarques

Pour représenter un appel à une static méthode (Shareddans Visual Basic), transmettez le instance paramètre lorsque vous appelez null cette méthode.

Si method elle représente une méthode d’instance, la Type propriété de instance doit être assignable au type de déclaration de la méthode représentée par method.

La Arguments propriété du résultat MethodCallExpression est vide. La Type propriété est égale au type de retour de la méthode représentée par method.

S’applique à

Call(MethodInfo, Expression, Expression)

Crée un MethodCallExpression qui représente un appel à une méthode statique prenant deux arguments.

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

Paramètres

method
MethodInfo

MethodInfo auquel la propriété Method doit être égale.

arg0
Expression

Expression qui représente le premier argument.

arg1
Expression

Expression qui représente le deuxième argument.

Retours

MethodCallExpression

MethodCallExpression dont la propriété NodeType est égale à Call et dont les propriétés Object et Method ont les valeurs spécifiées.

Exceptions

method a la valeur null.

S’applique à