Condividi tramite


Expression.Call Metodo

Definizione

Overload

Nome Descrizione
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 static metodo (Shared in Visual Basic) chiamando il 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 chiamando il 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 static metodo (Shared in Visual Basic) con argomenti.

Call(MethodInfo, Expression)

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

Call(MethodInfo, IEnumerable<Expression>)

Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico (Condiviso 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
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 Method proprietà uguale.

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 con la NodeType proprietà uguale a Call e le Object proprietà e Method 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
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 di per una chiamata di istanza. (passare null per un metodo statico (Condiviso 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 con la NodeType proprietà uguale a Call e le Object proprietà e Method impostate sui valori specificati.

Si applica a

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

Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs

Crea un oggetto MethodCallExpression che rappresenta una chiamata a un static metodo (Shared in Visual Basic) chiamando il 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")]
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")>]
static member Call : Type * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")>]
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 che contiene il metodo specificato static (Shared in Visual Basic).

methodName
String

Nome del metodo.

typeArguments
Type[]

Matrice di Type oggetti 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 Expression oggetti che rappresentano gli argomenti del metodo .

Restituisce

Oggetto MethodCallExpression con la NodeType proprietà uguale a Call, la Method proprietà impostata sull'oggetto MethodInfo che rappresenta il metodo specificato static (Shared in Visual Basic) e la Arguments proprietà impostata sugli argomenti specificati.

Attributi

Eccezioni

type o methodName è null.

Nessun metodo il cui nome è methodName, i cui parametri di tipo corrispondono typeArgumentsa e i cui tipi di parametro corrispondono arguments sono disponibili nei type tipi di base o .

oppure

Più di un metodo il cui nome è methodName, i cui parametri di tipo corrispondono typeArgumentsa e i cui tipi di parametro corrispondono arguments si trovano nei type tipi di base o .

Commenti

La Type proprietà dell'oggetto risultante MethodCallExpression è uguale al tipo restituito del metodo indicato da methodName. La Object proprietà è null.

Si applica a

Call(MethodInfo, Expression, Expression, Expression)

Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
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 Method proprietà uguale.

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 con la NodeType proprietà uguale a Call e le Object proprietà e Method impostate sui valori specificati.

Eccezioni

method è null.

Si applica a

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

Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs

Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo chiamando il 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member Call : System.Linq.Expressions.Expression * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
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 il cui Type valore della proprietà verrà cercato un metodo specifico.

methodName
String

Nome del metodo.

typeArguments
Type[]

Matrice di Type oggetti 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 Expression oggetti che rappresenta gli argomenti del metodo .

Restituisce

Oggetto MethodCallExpression con la NodeType proprietà uguale a Call, la Object proprietà uguale a instance, Method impostata su MethodInfo che rappresenta il metodo di istanza specificato e Arguments impostata sull'argomento specificato.

Attributi

Eccezioni

instance o methodName è null.

Nessun metodo il cui nome è methodName, i cui parametri di tipo corrispondono typeArgumentsa e i cui tipi di parametro corrispondono arguments è disponibile in instance. Digitare o i relativi tipi di base.

oppure

Più di un metodo il cui nome è methodName, i cui parametri di tipo corrispondono typeArgumentsa e i cui tipi di parametro corrispondono arguments si trovano in instance. Digitare o i 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
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 di per una chiamata di istanza. (passare null per un metodo statico (Condiviso 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 con la NodeType proprietà uguale a Call e le Object proprietà e Method 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
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 Method proprietà uguale.

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 con la NodeType proprietà uguale a Call e le Object proprietà e Method impostate sui valori specificati.

Eccezioni

method è null.

Si applica a

Call(Expression, MethodInfo, Expression[])

Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
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 di per una chiamata al metodo di istanza (passa null per un static metodo (Shared in Visual Basic).

method
MethodInfo

Oggetto MethodInfo su cui impostare la Method proprietà uguale.

arguments
Expression[]

Matrice di Expression oggetti da utilizzare per popolare l'insieme Arguments .

Restituisce

Oggetto MethodCallExpression con la NodeType proprietà uguale a Call e le Objectproprietà , Methode Arguments impostate sui valori specificati.

Eccezioni

method è null.

oppure

instance è null e method rappresenta un metodo di istanza.

oppure

arguments non null è e uno o più dei relativi elementi è null.

instance. Il tipo non è assegnabile al tipo dichiarante del metodo rappresentato da method.

oppure

Il numero di elementi in arguments non è uguale al numero di parametri per il metodo rappresentato da method.

oppure

Uno o più elementi di arguments non possono essere assegnati 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 invece .

Se method rappresenta un metodo di istanza, la Type proprietà di instance deve essere assegnata 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, possibilmente dopo l'inserimento tra virgolette.

Annotazioni

Un elemento verrà racchiuso tra virgolette solo se il parametro del metodo corrispondente è di tipo Expression. Virgolette indica che l'elemento viene incluso in un Quote nodo. Il nodo risultante è un oggetto UnaryExpression la cui Operand proprietà è l'elemento di arguments.

La Arguments proprietà dell'oggetto risultante MethodCallExpression è vuota se arguments è null. In caso contrario, contiene gli stessi elementi di arguments, alcuni dei quali possono essere racchiusi tra virgolette.

La Type proprietà dell'oggetto risultante 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
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 per impostare la Object proprietà uguale a (passa null per un static metodo (Shared in Visual Basic).

method
MethodInfo

Oggetto MethodInfo su cui impostare la Method proprietà uguale.

arguments
IEnumerable<Expression>

Oggetto IEnumerable<T> contenente Expression oggetti da utilizzare per popolare l'insieme Arguments .

Restituisce

Oggetto MethodCallExpression con la NodeType proprietà uguale a Call e le Objectproprietà , Methode Arguments impostate sui valori specificati.

Eccezioni

method è null.

oppure

instance è null e method rappresenta un metodo di istanza.

instance. Il tipo non è assegnabile al tipo dichiarante del metodo rappresentato da method.

oppure

Il numero di elementi in arguments non è uguale al numero di parametri per il metodo rappresentato da method.

oppure

Uno o più elementi di arguments non possono essere assegnati 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 invece .

Se method rappresenta un metodo di istanza, la Type proprietà di instance deve essere assegnata 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, possibilmente dopo l'inserimento tra virgolette.

Annotazioni

Un elemento verrà racchiuso tra virgolette solo se il parametro del metodo corrispondente è di tipo Expression. Virgolette indica che l'elemento viene incluso in un Quote nodo. Il nodo risultante è un oggetto UnaryExpression la cui Operand proprietà è l'elemento di arguments.

La Arguments proprietà dell'oggetto risultante MethodCallExpression è vuota se arguments è null. In caso contrario, contiene gli stessi elementi di arguments, alcuni dei quali possono essere racchiusi tra virgolette.

La Type proprietà dell'oggetto risultante 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
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs

Crea un oggetto MethodCallExpression che rappresenta una chiamata a un static metodo (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 static metodo (Shared in Visual Basic) per impostare la Method proprietà su .

arguments
Expression[]

Matrice di Expression oggetti da utilizzare per popolare l'insieme Arguments .

Restituisce

Oggetto MethodCallExpression con la NodeType proprietà uguale a Call e le Method proprietà e Arguments impostate sui valori specificati.

Eccezioni

method è null.

Il numero di elementi in arguments non è uguale al numero di parametri per il metodo rappresentato da method.

oppure

Uno o più elementi di arguments non possono essere assegnati 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, possibilmente dopo l'inserimento tra virgolette.

Annotazioni

Un elemento verrà racchiuso tra virgolette solo se il parametro del metodo corrispondente è di tipo Expression. Virgolette indica che l'elemento viene incluso in un Quote nodo. Il nodo risultante è un oggetto UnaryExpression la cui Operand proprietà è l'elemento di arguments.

La Arguments proprietà dell'oggetto risultante MethodCallExpression è vuota se arguments è null. In caso contrario, contiene gli stessi elementi di arguments, alcuni dei quali possono essere racchiusi tra virgolette.

La Type proprietà dell'oggetto risultante MethodCallExpression è uguale al tipo restituito del metodo rappresentato da method. La Object proprietà è null.

Si applica a

Call(MethodInfo, Expression)

Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs

Crea un oggetto MethodCallExpression che rappresenta una chiamata a un static metodo (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 Method proprietà uguale.

arg0
Expression

Oggetto Expression che rappresenta il primo argomento.

Restituisce

Oggetto MethodCallExpression con la NodeType proprietà uguale a Call e le Object proprietà e Method 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
Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs

Crea un oggetto MethodCallExpression che rappresenta una chiamata a un metodo statico (Condiviso 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 che rappresenta gli argomenti di Expression chiamata.

Restituisce

Oggetto MethodCallExpression con la NodeType proprietà uguale a Call e le Object proprietà e Method impostate sui valori specificati.

Si applica a

Call(Expression, MethodInfo)

Origine:
MethodCallExpression.cs
Origine:
MethodCallExpression.cs
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 di per una chiamata al metodo di istanza (passa null per un static metodo (Shared in Visual Basic).

method
MethodInfo

Oggetto MethodInfo su cui impostare la Method proprietà uguale.

Restituisce

Oggetto MethodCallExpression con la NodeType proprietà uguale a Call e le Object proprietà e Method impostate sui valori specificati.

Eccezioni

method è null.

oppure

instance è null e method rappresenta un metodo di istanza.

instance. Il tipo 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 assegnata al tipo dichiarante del metodo rappresentato da method.

La Arguments proprietà dell'oggetto risultante 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
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 Method proprietà uguale.

arg0
Expression

Oggetto Expression che rappresenta il primo argomento.

arg1
Expression

Oggetto Expression che rappresenta il secondo argomento.

Restituisce

Oggetto MethodCallExpression con la NodeType proprietà uguale a Call e le Object proprietà e Method impostate sui valori specificati.

Eccezioni

method è null.

Si applica a