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)
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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)
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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[])
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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 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 désignée par methodName
. La propriété Object a la valeur null
.
S’applique à
Call(MethodInfo, Expression, Expression, Expression)
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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[])
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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 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 désignée par methodName
.
S’applique à
Call(Expression, MethodInfo, Expression, Expression)
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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 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)
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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[])
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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
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 (Shared
en Visual Basic), transmettez null
le instance
paramètre lorsque vous appelez cette méthode, ou appelez Call à la place.
Si method
représente une méthode 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
n’est pas null
, elle doit avoir le même nombre d’éléments que le nombre de paramètres pour la méthode représentée par method
. Chaque élément dans arguments
ne doit pas être null
et doit être assignable au paramètre correspondant de method
, éventuellement après la guillemet.
Notes
Un élément n’est entre guillemets que si le paramètre de méthode correspondant est de type Expression. Les guillemets signifient 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 de arguments
.
La Arguments propriété du résultat MethodCallExpression est vide si arguments
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>)
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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
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 (Shared
en Visual Basic), transmettez null
le instance
paramètre lorsque vous appelez cette méthode, ou appelez Call à la place.
Si method
représente une méthode 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
n’est pas null
, elle doit avoir le même nombre d’éléments que le nombre de paramètres pour la méthode représentée par method
. Chaque élément dans arguments
ne doit pas être null
et doit être assignable au paramètre correspondant de method
, éventuellement après la guillemet.
Notes
Un élément n’est entre guillemets que si le paramètre de méthode correspondant est de type Expression. Les guillemets signifient 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 de arguments
.
La Arguments propriété du résultat MethodCallExpression est vide si arguments
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[])
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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 par method
.
Remarques
Si arguments
n’est pas null
, elle doit avoir le même nombre d’éléments que le nombre de paramètres pour la méthode représentée par method
. Chaque élément dans arguments
ne doit pas être null
et doit être assignable au paramètre correspondant de method
, éventuellement après la guillemet.
Notes
Un élément n’est entre guillemets que si le paramètre de méthode correspondant est de type Expression. Les guillemets signifient 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 de arguments
.
La Arguments propriété du résultat MethodCallExpression est vide si arguments
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)
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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
en 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>)
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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)
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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
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 (Shared
en Visual Basic), transmettez null
le instance
paramètre lorsque vous appelez cette méthode.
Si method
représente une méthode 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)
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
- Source:
- MethodCallExpression.cs
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.