Compartilhar via


Expression.Call Método

Definição

Sobrecargas

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

Cria uma MethodCallExpression que representa uma chamada para um método estático que aceita cinco argumentos.

Call(Expression, MethodInfo, Expression, Expression, Expression)

Cria uma MethodCallExpression que representa uma chamada para um método que usa três argumentos.

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

Cria um MethodCallExpression que representa uma chamada para um método static (Shared no Visual Basic) chamando o método de fábrica apropriado.

Call(MethodInfo, Expression, Expression, Expression)

Cria uma MethodCallExpression que representa uma chamada para um método estático que usa três argumentos.

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

Cria um MethodCallExpression que representa uma chamada para um método chamando o método de fábrica apropriado.

Call(Expression, MethodInfo, Expression, Expression)

Cria um MethodCallExpression que representa uma chamada para um método que aceita dois argumentos.

Call(MethodInfo, Expression, Expression, Expression, Expression)

Cria uma MethodCallExpression que representa uma chamada para um método estático que aceita quatro argumentos.

Call(Expression, MethodInfo, Expression[])

Cria um MethodCallExpression que representa uma chamada para um método que aceita argumentos.

Call(Expression, MethodInfo, IEnumerable<Expression>)

Cria um MethodCallExpression que representa uma chamada para um método que aceita argumentos.

Call(MethodInfo, Expression[])

Cria um MethodCallExpression que representa uma chamada para um método static (Shared no Visual Basic) que tem argumentos.

Call(MethodInfo, Expression)

Cria um MethodCallExpression que representa uma chamada para um método static (Shared no Visual Basic) que aceita um argumento.

Call(MethodInfo, IEnumerable<Expression>)

Cria uma MethodCallExpression que representa uma chamada para um método estático (compartilhado no Visual Basic).

Call(Expression, MethodInfo)

Cria um MethodCallExpression que representa uma chamada para um método que não aceita argumentos.

Call(MethodInfo, Expression, Expression)

Cria um MethodCallExpression que representa uma chamada para um método estático que aceita dois argumentos.

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria uma MethodCallExpression que representa uma chamada para um método estático que aceita cinco argumentos.

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

Parâmetros

method
MethodInfo

Um MethodInfo para definir a propriedade Method igual a ele.

arg0
Expression

O Expression que representa o primeiro argumento.

arg1
Expression

O Expression que representa o segundo argumento.

arg2
Expression

O Expression que representa o terceiro argumento.

arg3
Expression

O Expression que representa o quarto argumento.

arg4
Expression

O Expression que representa o quinto argumento.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Method definidas com os valores especificados.

Exceções

method é nulo.

Aplica-se a

Call(Expression, MethodInfo, Expression, Expression, Expression)

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria uma MethodCallExpression que representa uma chamada para um método que usa três argumentos.

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

Parâmetros

instance
Expression

Um Expression que especifica a instância de uma chamada de instância. (passar nulo para um método estático [compartilhado no Visual Basic]).

method
MethodInfo

O MethodInfo que representa o método de destino.

arg0
Expression

O Expression que representa o primeiro argumento.

arg1
Expression

O Expression que representa o segundo argumento.

arg2
Expression

O Expression que representa o terceiro argumento.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Method definidas com os valores especificados.

Aplica-se a

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

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria um MethodCallExpression que representa uma chamada para um método static (Shared no Visual Basic) chamando o método de fábrica apropriado.

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

Parâmetros

type
Type

O tipo que contém o método static especificado (Shared no Visual Basic).

methodName
String

O nome do método.

typeArguments
Type[]

Uma matriz de objetos Type que especificam os parâmetros de tipo do método genérico. Esse argumento deve ser nulo quando methodName especifica um método não genérico.

arguments
Expression[]

Uma matriz de objetos Expression que representam os argumentos para o método.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call, a propriedade Method definida como o MethodInfo que representa o método static especificado (Shared no Visual Basic) e a propriedade Arguments definida como os argumentos especificados.

Exceções

type ou methodName é null.

Nenhum método cujo nome é methodName, cujos parâmetros de tipo correspondem a typeArguments e cujos tipos de parâmetro correspondem a arguments foi encontrado em type ou em seus tipos base.

- ou -

Mais de um método cujo nome é methodName, cujos parâmetros de tipo correspondem a typeArguments e cujos tipos de parâmetro correspondem a arguments foi encontrado em type ou em seus tipos base.

Comentários

A Type propriedade do resultante MethodCallExpression é igual ao tipo de retorno do método indicado por methodName. A propriedade Object é null.

Aplica-se a

Call(MethodInfo, Expression, Expression, Expression)

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria uma MethodCallExpression que representa uma chamada para um método estático que usa três argumentos.

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

Parâmetros

method
MethodInfo

Um MethodInfo para definir a propriedade Method igual a ele.

arg0
Expression

O Expression que representa o primeiro argumento.

arg1
Expression

O Expression que representa o segundo argumento.

arg2
Expression

O Expression que representa o terceiro argumento.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Method definidas com os valores especificados.

Exceções

method é nulo.

Aplica-se a

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

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria um MethodCallExpression que representa uma chamada para um método chamando o método de fábrica apropriado.

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

Parâmetros

instance
Expression

Um Expression cujo valor da propriedade Type será pesquisado quanto a um método específico.

methodName
String

O nome do método.

typeArguments
Type[]

Uma matriz de objetos Type que especificam os parâmetros de tipo do método genérico. Esse argumento deve ser nulo quando methodName especifica um método não genérico.

arguments
Expression[]

Uma matriz de objetos Expression que representa os argumentos para o método.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call, a propriedade Object igual a instance, Method definido como o MethodInfo que representa o método de instância especificado e Arguments definido como os argumentos especificados.

Exceções

instance ou methodName é null.

Nenhum método cujo nome é methodName, cujos parâmetros de tipo correspondem a typeArguments e cujos tipos de parâmetro correspondem a arguments foi encontrado em instance.Type ou em seus tipos base.

- ou -

Mais de um método cujo nome é methodName, cujos parâmetros de tipo correspondem a typeArguments e cujos tipos de parâmetro correspondem a arguments foi encontrado em instance.Type ou em seus tipos base.

Comentários

A Type propriedade do resultante MethodCallExpression é igual ao tipo de retorno do método indicado por methodName.

Aplica-se a

Call(Expression, MethodInfo, Expression, Expression)

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria um MethodCallExpression que representa uma chamada para um método que aceita dois argumentos.

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

Parâmetros

instance
Expression

Um Expression que especifica a instância de uma chamada de instância. (passar nulo para um método estático [compartilhado no Visual Basic]).

method
MethodInfo

O MethodInfo que representa o método de destino.

arg0
Expression

O Expression que representa o primeiro argumento.

arg1
Expression

O Expression que representa o segundo argumento.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Method definidas com os valores especificados.

Exemplos

O exemplo de código a seguir mostra como criar uma expressão que chama um método de instância que tem dois argumentos.

// 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

Aplica-se a

Call(MethodInfo, Expression, Expression, Expression, Expression)

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria uma MethodCallExpression que representa uma chamada para um método estático que aceita quatro argumentos.

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

Parâmetros

method
MethodInfo

Um MethodInfo para definir a propriedade Method igual a ele.

arg0
Expression

O Expression que representa o primeiro argumento.

arg1
Expression

O Expression que representa o segundo argumento.

arg2
Expression

O Expression que representa o terceiro argumento.

arg3
Expression

O Expression que representa o quarto argumento.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Method definidas com os valores especificados.

Exceções

method é nulo.

Aplica-se a

Call(Expression, MethodInfo, Expression[])

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria um MethodCallExpression que representa uma chamada para um método que aceita argumentos.

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

Parâmetros

instance
Expression

Um Expression que especifica a instância de uma chamada de método de instância (passa null para um método static (Shared no Visual Basic)).

method
MethodInfo

Um MethodInfo para definir a propriedade Method igual a ele.

arguments
Expression[]

Uma matriz de objetos Expression a serem usados para popular a coleção de Arguments.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object, Method e Arguments definidas com os valores especificados.

Exceções

method é null.

- ou -

instance é null e method representa um método de instância.

- ou -

arguments não é null e um ou mais dos seus elementos é null.

instance. O tipo não é atribuível ao tipo de declaração de método representada pelo method.

- ou -

O número de elementos em arguments não é igual ao número de parâmetros para o método representado por method.

- ou -

Um ou mais dos elementos de arguments não é atribuível ao parâmetro correspondente para o método representado por method.

Comentários

Para representar uma chamada para um static método (Shared no Visual Basic), passe null para o instance parâmetro quando você chamar esse método ou chame Call em vez disso.

Se method representar um método de instância, a Type propriedade de instance deverá ser atribuível ao tipo de declaração do método representado por method.

Se arguments não nullfor , ele deverá ter o mesmo número de elementos que o número de parâmetros para o método representado por method. Cada elemento em arguments não deve ser null e deve ser atribuível ao parâmetro correspondente de method, possivelmente após aspas.

Observação

Um elemento será citado somente se o parâmetro de método correspondente for do tipo Expression. Aspas significam que o elemento está encapsulado em um Quote nó. O nó resultante é um UnaryExpression cuja Operand propriedade é o elemento de arguments.

A Arguments propriedade do resultante MethodCallExpression estará vazia se arguments for null. Caso contrário, ele contém os mesmos elementos argumentsque , alguns dos quais podem ser citados.

A Type propriedade do resultante MethodCallExpression é igual ao tipo de retorno do método representado por method.

Aplica-se a

Call(Expression, MethodInfo, IEnumerable<Expression>)

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria um MethodCallExpression que representa uma chamada para um método que aceita argumentos.

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

Parâmetros

instance
Expression

Um Expression para definir a propriedade Object igual a (passar null para um método static [Shared no Visual Basic]).

method
MethodInfo

Um MethodInfo para definir a propriedade Method igual a ele.

arguments
IEnumerable<Expression>

Um IEnumerable<T> que contém objetos Expression a serem usados para preencher a coleção de Arguments.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object, Method e Arguments definidas com os valores especificados.

Exceções

method é null.

- ou -

instance é null e method representa um método de instância.

instance. O tipo não é atribuível ao tipo de declaração de método representada pelo method.

- ou -

O número de elementos em arguments não é igual ao número de parâmetros para o método representado por method.

- ou -

Um ou mais dos elementos de arguments não é atribuível ao parâmetro correspondente para o método representado por method.

Comentários

Para representar uma chamada para um static método (Shared no Visual Basic), passe null para o instance parâmetro quando você chamar esse método ou chame Call em vez disso.

Se method representar um método de instância, a Type propriedade de instance deverá ser atribuível ao tipo de declaração do método representado por method.

Se arguments não nullfor , ele deverá ter o mesmo número de elementos que o número de parâmetros para o método representado por method. Cada elemento em arguments não deve ser null e deve ser atribuível ao parâmetro correspondente de method, possivelmente após aspas.

Observação

Um elemento será citado somente se o parâmetro de método correspondente for do tipo Expression. Aspas significam que o elemento está encapsulado em um Quote nó. O nó resultante é um UnaryExpression cuja Operand propriedade é o elemento de arguments.

A Arguments propriedade do resultante MethodCallExpression estará vazia se arguments for null. Caso contrário, ele contém os mesmos elementos argumentsque , alguns dos quais podem ser citados.

A Type propriedade do resultante MethodCallExpression é igual ao tipo de retorno do método representado por method.

Aplica-se a

Call(MethodInfo, Expression[])

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria um MethodCallExpression que representa uma chamada para um método static (Shared no Visual Basic) que tem argumentos.

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

Parâmetros

method
MethodInfo

Um MethodInfo que representa um método static (Shared no Visual Basic) igual ao qual definir a propriedade Method.

arguments
Expression[]

Uma matriz de objetos Expression a serem usados para popular a coleção de Arguments.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Method e Arguments definidas com os valores especificados.

Exceções

method é null.

O número de elementos em arguments não é igual ao número de parâmetros para o método representado por method.

- ou -

Um ou mais dos elementos de arguments não é atribuível ao parâmetro correspondente para o método representado por method.

Comentários

Se arguments não nullfor , ele deverá ter o mesmo número de elementos que o número de parâmetros para o método representado por method. Cada elemento em arguments não deve ser null e deve ser atribuível ao parâmetro correspondente de method, possivelmente após aspas.

Observação

Um elemento será citado somente se o parâmetro de método correspondente for do tipo Expression. Aspas significam que o elemento está encapsulado em um Quote nó. O nó resultante é um UnaryExpression cuja Operand propriedade é o elemento de arguments.

A Arguments propriedade do resultante MethodCallExpression estará vazia se arguments for null. Caso contrário, ele contém os mesmos elementos argumentsque , alguns dos quais podem ser citados.

A Type propriedade do resultante MethodCallExpression é igual ao tipo de retorno do método representado por method. A propriedade Object é null.

Aplica-se a

Call(MethodInfo, Expression)

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria um MethodCallExpression que representa uma chamada para um método static (Shared no Visual Basic) que aceita um argumento.

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

Parâmetros

method
MethodInfo

Um MethodInfo para definir a propriedade Method igual a ele.

arg0
Expression

O Expression que representa o primeiro argumento.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Method definidas com os valores especificados.

Exceções

method é nulo.

Exemplos

O exemplo a seguir demonstra como criar uma expressão que chama um static método (Shared no Visual Basic) que usa um argumento.

// 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

Aplica-se a

Call(MethodInfo, IEnumerable<Expression>)

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria uma MethodCallExpression que representa uma chamada para um método estático (compartilhado no 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

Parâmetros

method
MethodInfo

O MethodInfo que representa o método de destino.

arguments
IEnumerable<Expression>

Uma coleção de Expression que representa os argumentos de chamada.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Method definidas com os valores especificados.

Aplica-se a

Call(Expression, MethodInfo)

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria um MethodCallExpression que representa uma chamada para um método que não aceita argumentos.

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

Parâmetros

instance
Expression

Um Expression que especifica a instância de uma chamada de método de instância (passa null para um método static (Shared no Visual Basic)).

method
MethodInfo

Um MethodInfo para definir a propriedade Method igual a ele.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Method definidas com os valores especificados.

Exceções

method é null.

- ou -

instance é null e method representa um método de instância.

instance. O tipo não é atribuível ao tipo de declaração de método representada pelo method.

Exemplos

O exemplo de código a seguir mostra como criar uma expressão que chama um método sem argumentos.

// 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

Comentários

Para representar uma chamada para um static método (Shared no Visual Basic), passe null para o instance parâmetro quando você chamar esse método.

Se method representar um método de instância, a Type propriedade de instance deverá ser atribuível ao tipo de declaração do método representado por method.

A Arguments propriedade do resultante MethodCallExpression está vazia. A Type propriedade é igual ao tipo de retorno do método representado por method.

Aplica-se a

Call(MethodInfo, Expression, Expression)

Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs
Origem:
MethodCallExpression.cs

Cria um MethodCallExpression que representa uma chamada para um método estático que aceita dois argumentos.

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

Parâmetros

method
MethodInfo

Um MethodInfo para definir a propriedade Method igual a ele.

arg0
Expression

O Expression que representa o primeiro argumento.

arg1
Expression

O Expression que representa o segundo argumento.

Retornos

Um MethodCallExpression que tem a propriedade NodeType igual a Call e as propriedades Object e Method definidas com os valores especificados.

Exceções

method é nulo.

Aplica-se a