Expression.Call Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée un MethodCallExpression.
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 |
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 |
Call(MethodInfo, Expression) |
Crée un MethodCallExpression qui représente un appel à une méthode |
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 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 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 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 danstype
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 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 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 dansinstance
.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 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 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 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
estnull
etmethod
représente une méthode d’instance.ou -
arguments
n’est pasnull
et un ou plusieurs de ses éléments sontnull
.
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 parmethod
.ou - Un ou plusieurs des éléments des
arguments
n’est pas assignable au paramètre correspondant pour la méthode représentée parmethod
.
Remarques
Pour représenter un appel à une static
méthode (Shared
dans 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 null
le 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 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
estnull
etmethod
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 parmethod
.ou - Un ou plusieurs des éléments des
arguments
n’est pas assignable au paramètre correspondant pour la méthode représentée parmethod
.
Remarques
Pour représenter un appel à une static
méthode (Shared
dans 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 null
le 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 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 parmethod
.
Remarques
Si arguments
ce n’est pas null
le 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 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 (Shared
dans 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 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 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
estnull
etmethod
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 (Shared
dans 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 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.