Expression.Call Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea un oggetto MethodCallExpression.
Overload
Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico che accetta cinque argomenti. |
Call(Expression, MethodInfo, Expression, Expression, Expression) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo che accetta tre argomenti. |
Call(Type, String, Type[], Expression[]) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo |
Call(MethodInfo, Expression, Expression, Expression) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico che accetta tre argomenti. |
Call(Expression, String, Type[], Expression[]) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo tramite la chiamata al metodo factory appropriato. |
Call(Expression, MethodInfo, Expression, Expression) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo che accetta due argomenti. |
Call(MethodInfo, Expression, Expression, Expression, Expression) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico che accetta quattro argomenti. |
Call(Expression, MethodInfo, Expression[]) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo che accetta argomenti. |
Call(Expression, MethodInfo, IEnumerable<Expression>) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo che accetta argomenti. |
Call(MethodInfo, Expression[]) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo |
Call(MethodInfo, Expression) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata al metodo |
Call(MethodInfo, IEnumerable<Expression>) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico (Shared in Visual Basic). |
Call(Expression, MethodInfo) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo che non accetta argomenti. |
Call(MethodInfo, Expression, Expression) |
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico che accetta due argomenti. |
Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico che accetta cinque argomenti.
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
Parametri
- method
- MethodInfo
Oggetto MethodInfo su cui impostare la proprietà Method.
- arg0
- Expression
Oggetto Expression che rappresenta il primo argomento.
- arg1
- Expression
Oggetto Expression che rappresenta il secondo argomento.
- arg2
- Expression
Oggetto Expression che rappresenta il terzo argomento.
- arg3
- Expression
Oggetto Expression che rappresenta il quarto argomento.
- arg4
- Expression
Oggetto Expression che rappresenta il quinto argomento.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Method sono impostate sui valori specificati.
Eccezioni
method
è null.
Si applica a
Call(Expression, MethodInfo, Expression, Expression, Expression)
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo che accetta tre argomenti.
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
Parametri
- instance
- Expression
Oggetto Expression che specifica l'istanza per una chiamata all'istanza. Passare Null per un metodo statico (Shared in Visual Basic).
- method
- MethodInfo
Oggetto MethodInfo che rappresenta il metodo di destinazione.
- arg0
- Expression
Oggetto Expression che rappresenta il primo argomento.
- arg1
- Expression
Oggetto Expression che rappresenta il secondo argomento.
- arg2
- Expression
Oggetto Expression che rappresenta il terzo argomento.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Method sono impostate sui valori specificati.
Si applica a
Call(Type, String, Type[], Expression[])
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo static
(Shared
in Visual Basic) tramite la chiamata al metodo factory appropriato.
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
Parametri
- type
- Type
Tipo contenente il metodo static
(Shared
in Visual Basic) specificato.
- methodName
- String
Nome del metodo.
- typeArguments
- Type[]
Matrice di oggetti Type che specificano i parametri di tipo del metodo generico. Questo argomento deve essere Null quando methodName specifica un metodo non generico.
- arguments
- Expression[]
Matrice di oggetti Expression che rappresentano gli argomenti del metodo.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call, la cui proprietà Method è impostata sull'oggetto MethodInfo che rappresenta il metodo static
(Shared
in Visual Basic) specificato e la cui proprietà Arguments è impostata sugli argomenti specificati.
Eccezioni
type
o methodName
è null
.
Nessun metodo il cui nome è methodName
, i cui parametri di tipo corrispondono a typeArguments
e i cui tipi di parametro corrispondono a arguments
viene trovato in type
o nei relativi tipi di base.
-oppure-
Più di un metodo il cui nome è methodName
, i cui parametri di tipo corrispondono a typeArguments
e i cui tipi di parametro corrispondono a arguments
viene trovato in type
o nei relativi tipi di base.
Commenti
La Type proprietà dell'oggetto risultante MethodCallExpression è uguale al tipo restituito del metodo indicato da methodName
. La proprietà Object è null
.
Si applica a
Call(MethodInfo, Expression, Expression, Expression)
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico che accetta tre argomenti.
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
Parametri
- method
- MethodInfo
Oggetto MethodInfo su cui impostare la proprietà Method.
- arg0
- Expression
Oggetto Expression che rappresenta il primo argomento.
- arg1
- Expression
Oggetto Expression che rappresenta il secondo argomento.
- arg2
- Expression
Oggetto Expression che rappresenta il terzo argomento.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Method sono impostate sui valori specificati.
Eccezioni
method
è null.
Si applica a
Call(Expression, String, Type[], Expression[])
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo tramite la chiamata al metodo factory appropriato.
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
Parametri
- instance
- Expression
Oggetto Expression nel cui valore della proprietà Type verrà cercato un metodo specificato.
- methodName
- String
Nome del metodo.
- typeArguments
- Type[]
Matrice di oggetti Type che specificano i parametri di tipo del metodo generico. Questo argomento deve essere Null quando methodName specifica un metodo non generico.
- arguments
- Expression[]
Matrice di oggetti Expression che rappresenta gli argomenti del metodo.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call, la cui proprietà Object è uguale a instance
, Method è impostata sull'oggetto MethodInfo che rappresenta il metodo di istanza specificato e il cui oggetto Arguments è impostato sugli argomenti specificati.
Eccezioni
instance
o methodName
è null
.
Nessun metodo il cui nome è methodName
, i cui parametri di tipo corrispondono a typeArguments
e i cui tipi di parametro corrispondono a arguments
viene trovato in instance
.Type o nei relativi tipi di base.
-oppure-
Più di un metodo il cui nome è methodName
, i cui parametri di tipo corrispondono a typeArguments
e i cui tipi di parametro corrispondono a arguments
viene trovato in instance
.Type o nei relativi tipi di base.
Commenti
La Type proprietà dell'oggetto risultante MethodCallExpression è uguale al tipo restituito del metodo indicato da methodName
.
Si applica a
Call(Expression, MethodInfo, Expression, Expression)
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo che accetta due argomenti.
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
Parametri
- instance
- Expression
Oggetto Expression che specifica l'istanza per una chiamata all'istanza. Passare Null per un metodo statico (Shared in Visual Basic).
- method
- MethodInfo
Oggetto MethodInfo che rappresenta il metodo di destinazione.
- arg0
- Expression
Oggetto Expression che rappresenta il primo argomento.
- arg1
- Expression
Oggetto Expression che rappresenta il secondo argomento.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Method sono impostate sui valori specificati.
Esempio
Nell'esempio di codice seguente viene illustrato come creare un'espressione che chiama un metodo di istanza con due argomenti.
// 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
Si applica a
Call(MethodInfo, Expression, Expression, Expression, Expression)
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico che accetta quattro argomenti.
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
Parametri
- method
- MethodInfo
Oggetto MethodInfo su cui impostare la proprietà Method.
- arg0
- Expression
Oggetto Expression che rappresenta il primo argomento.
- arg1
- Expression
Oggetto Expression che rappresenta il secondo argomento.
- arg2
- Expression
Oggetto Expression che rappresenta il terzo argomento.
- arg3
- Expression
Oggetto Expression che rappresenta il quarto argomento.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Method sono impostate sui valori specificati.
Eccezioni
method
è null.
Si applica a
Call(Expression, MethodInfo, Expression[])
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo che accetta argomenti.
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
Parametri
- instance
- Expression
Oggetto Expression che specifica l'istanza per una chiamata a un metodo di istanza. Passare null
per un metodo static
(Shared
in Visual Basic).
- method
- MethodInfo
Oggetto MethodInfo su cui impostare la proprietà Method.
- arguments
- Expression[]
Matrice di oggetti Expression da usare per popolare la raccolta Arguments.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object, Method e Arguments sono impostate sui valori specificati.
Eccezioni
method
è null
.
-oppure-
instance
è null
e method
rappresenta un metodo di istanza.
-oppure-
arguments
non è null
e almeno uno dei relativi elementi è null
.
instance
.Type non è assegnabile al tipo dichiarante del metodo rappresentato da method
.
-oppure-
Il numero di elementi in arguments
è diverso dal numero dei parametri per il metodo rappresentato da method
.
-oppure-
Uno o più elementi di arguments
non sono assegnabili al parametro corrispondente per il metodo rappresentato da method
.
Commenti
Per rappresentare una chiamata a un static
metodo (Shared
in Visual Basic), passare null
per il instance
parametro quando si chiama questo metodo o chiamare Call .
Se method
rappresenta un metodo di istanza, la Type proprietà di instance
deve essere assegnabile al tipo dichiarante del metodo rappresentato da method
.
Se arguments
non null
è , deve avere lo stesso numero di elementi del numero di parametri per il metodo rappresentato da method
. Ogni elemento in arguments
non deve essere null
e deve essere assegnabile al parametro corrispondente di method
, eventualmente dopo la virgolette.
Nota
Un elemento verrà citato solo se il parametro del metodo corrispondente è di tipo Expression. La citazione indica che l'elemento viene eseguito il wrapping in un Quote nodo. Il nodo risultante è un UnaryExpression oggetto la cui Operand proprietà è l'elemento di arguments
.
La Arguments proprietà del risultato MethodCallExpression è vuota se arguments
è null
. In caso contrario, contiene gli stessi elementi di arguments
, alcuni dei quali possono essere citati.
La Type proprietà del risultato MethodCallExpression è uguale al tipo restituito del metodo rappresentato da method
.
Si applica a
Call(Expression, MethodInfo, IEnumerable<Expression>)
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo che accetta argomenti.
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
Parametri
- instance
- Expression
Oggetto Expression su cui impostare la proprietà Object. Passare null
per un metodo static
(Shared
in Visual Basic).
- method
- MethodInfo
Oggetto MethodInfo su cui impostare la proprietà Method.
- arguments
- IEnumerable<Expression>
Oggetto IEnumerable<T> contenente gli oggetti Expression da usare per popolare la raccolta Arguments.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object, Method e Arguments sono impostate sui valori specificati.
Eccezioni
method
è null
.
-oppure-
instance
è null
e method
rappresenta un metodo di istanza.
instance
.Type non è assegnabile al tipo dichiarante del metodo rappresentato da method
.
-oppure-
Il numero di elementi in arguments
è diverso dal numero dei parametri per il metodo rappresentato da method
.
-oppure-
Uno o più elementi di arguments
non sono assegnabili al parametro corrispondente per il metodo rappresentato da method
.
Commenti
Per rappresentare una chiamata a un static
metodo (Shared
in Visual Basic), passare null
per il instance
parametro quando si chiama questo metodo o chiamare Call .
Se method
rappresenta un metodo di istanza, la Type proprietà di instance
deve essere assegnabile al tipo dichiarante del metodo rappresentato da method
.
Se arguments
non null
è , deve avere lo stesso numero di elementi del numero di parametri per il metodo rappresentato da method
. Ogni elemento in arguments
non deve essere null
e deve essere assegnabile al parametro corrispondente di method
, eventualmente dopo la virgolette.
Nota
Un elemento verrà citato solo se il parametro del metodo corrispondente è di tipo Expression. La citazione indica che l'elemento viene eseguito il wrapping in un Quote nodo. Il nodo risultante è un UnaryExpression oggetto la cui Operand proprietà è l'elemento di arguments
.
La Arguments proprietà del risultato MethodCallExpression è vuota se arguments
è null
. In caso contrario, contiene gli stessi elementi di arguments
, alcuni dei quali possono essere citati.
La Type proprietà del risultato MethodCallExpression è uguale al tipo restituito del metodo rappresentato da method
.
Si applica a
Call(MethodInfo, Expression[])
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo static
(Shared
in Visual Basic) con argomenti.
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
Parametri
- method
- MethodInfo
Oggetto MethodInfo che rappresenta un metodo static
(Shared
in Visual Basic) su cui impostare la proprietà Method.
- arguments
- Expression[]
Matrice di oggetti Expression da usare per popolare la raccolta Arguments.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Method e Arguments sono impostate sui valori specificati.
Eccezioni
method
è null
.
Il numero di elementi in arguments
è diverso dal numero dei parametri per il metodo rappresentato da method
.
-oppure-
Uno o più elementi di arguments
non sono assegnabili al parametro corrispondente per il metodo rappresentato da method
.
Commenti
Se arguments
non null
è , deve avere lo stesso numero di elementi del numero di parametri per il metodo rappresentato da method
. Ogni elemento in arguments
non deve essere null
e deve essere assegnabile al parametro corrispondente di method
, eventualmente dopo la virgolette.
Nota
Un elemento verrà citato solo se il parametro del metodo corrispondente è di tipo Expression. La citazione indica che l'elemento viene eseguito il wrapping in un Quote nodo. Il nodo risultante è un UnaryExpression oggetto la cui Operand proprietà è l'elemento di arguments
.
La Arguments proprietà del risultato MethodCallExpression è vuota se arguments
è null
. In caso contrario, contiene gli stessi elementi di arguments
, alcuni dei quali possono essere citati.
La Type proprietà del risultato MethodCallExpression è uguale al tipo restituito del metodo rappresentato da method
. La proprietà Object è null
.
Si applica a
Call(MethodInfo, Expression)
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata al metodo static
(Shared
in Visual Basic) che accetta un argomento.
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
Parametri
- method
- MethodInfo
Oggetto MethodInfo su cui impostare la proprietà Method.
- arg0
- Expression
Oggetto Expression che rappresenta il primo argomento.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Method sono impostate sui valori specificati.
Eccezioni
method
è null.
Esempio
Nell'esempio seguente viene illustrato come creare un'espressione che chiama un static
metodo (Shared
in Visual Basic) che accetta un argomento.
// 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
Si applica a
Call(MethodInfo, IEnumerable<Expression>)
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico (Shared in 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
Parametri
- method
- MethodInfo
Oggetto MethodInfo che rappresenta il metodo di destinazione.
- arguments
- IEnumerable<Expression>
Raccolta di Expression che rappresenta gli argomenti della chiamata.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Method sono impostate sui valori specificati.
Si applica a
Call(Expression, MethodInfo)
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo che non accetta argomenti.
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
Parametri
- instance
- Expression
Oggetto Expression che specifica l'istanza per una chiamata a un metodo di istanza. Passare null
per un metodo static
(Shared
in Visual Basic).
- method
- MethodInfo
Oggetto MethodInfo su cui impostare la proprietà Method.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Method sono impostate sui valori specificati.
Eccezioni
method
è null
.
-oppure-
instance
è null
e method
rappresenta un metodo di istanza.
instance
.Type non è assegnabile al tipo dichiarante del metodo rappresentato da method
.
Esempio
Nell'esempio di codice seguente viene illustrato come creare un'espressione che chiama un metodo senza argomenti.
// 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
Commenti
Per rappresentare una chiamata a un static
metodo (Shared
in Visual Basic), passare null
per il instance
parametro quando si chiama questo metodo.
Se method
rappresenta un metodo di istanza, la Type proprietà di instance
deve essere assegnabile al tipo dichiarante del metodo rappresentato da method
.
La Arguments proprietà del risultato MethodCallExpression è vuota. La Type proprietà è uguale al tipo restituito del metodo rappresentato da method
.
Si applica a
Call(MethodInfo, Expression, Expression)
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
- Origine:
- MethodCallExpression.cs
Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico che accetta due argomenti.
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
Parametri
- method
- MethodInfo
Oggetto MethodInfo su cui impostare la proprietà Method.
- arg0
- Expression
Oggetto Expression che rappresenta il primo argomento.
- arg1
- Expression
Oggetto Expression che rappresenta il secondo argomento.
Restituisce
Oggetto MethodCallExpression la cui proprietà NodeType è uguale a Call e le cui proprietà Object e Method sono impostate sui valori specificati.
Eccezioni
method
è null.