Condividi tramite


Expression.Call Metodo

Definizione

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 static (Shared in Visual Basic) tramite la chiamata al metodo factory appropriato.

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 static (Shared in Visual Basic) con argomenti.

Call(MethodInfo, Expression)

Crea un oggetto MethodCallExpression che rappresenta una chiamata al metodo static (Shared in Visual Basic) che accetta un argomento.

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 typeArgumentse 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 typeArgumentse 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 typeArgumentse 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 typeArgumentse 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.

Si applica a