Expression.Call Método

Definição

Sobrecargas

Name Description
Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

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

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

Cria um MethodCallExpression que representa uma chamada a um método que aceita três argumentos.

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

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

Call(MethodInfo, Expression, Expression, Expression)

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

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

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

Call(Expression, MethodInfo, Expression, Expression)

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

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

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

Call(Expression, MethodInfo, Expression[])

Cria um MethodCallExpression que representa uma chamada a um método que recebe argumentos.

Call(Expression, MethodInfo, IEnumerable<Expression>)

Cria um MethodCallExpression que representa uma chamada a um método que recebe argumentos.

Call(MethodInfo, Expression[])

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

Call(MethodInfo, Expression)

Cria um método MethodCallExpression que representa uma chamada a um método static (Shared em Visual Basic) que utiliza um argumento.

Call(MethodInfo, IEnumerable<Expression>)

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

Call(Expression, MethodInfo)

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

Call(MethodInfo, Expression, Expression)

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

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

Cria um MethodCallExpression que representa uma chamada a um método estático que requer 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

A MethodInfo para definir a Method propriedade igual a .

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.

Devoluções

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

Exceções

method é null.

Aplica-se a

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

Cria um MethodCallExpression que representa uma chamada a um método que aceita 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);
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 para uma chamada de instância. (pass null para um método estático (Shared in Visual Basic)).

method
MethodInfo

O MethodInfo que representa o método alvo.

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.

Devoluções

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

Aplica-se a

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

Cria um método MethodCallExpression que representa uma chamada para um método static (Shared em Visual Basic) ao chamar 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);
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 especificado static (Shared em Visual Basic).

methodName
String

O nome do método.

typeArguments
Type[]

Um array de Type objetos que especificam os parâmetros de tipo do método genérico. Este argumento deveria ser nulo quando o método Nome especificar um método não genérico.

arguments
Expression[]

Um array de Expression objetos que representam os argumentos do método.

Devoluções

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

Exceções

type ou methodName é null.

Nenhum método cujo nome é methodName, cujos parâmetros de tipo coincidem typeArgumentscom , e cujos tipos de parâmetros coincidem arguments são encontrados em type ou nos seus tipos base.

-ou-

Mais do que um método cujo nome é methodName, cujos parâmetros de tipo correspondem typeArgumentsa , e cujos tipos de parâmetros coincidem arguments encontram-se em type ou os seus tipos base.

Observações

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

Aplica-se a

Call(MethodInfo, Expression, Expression, Expression)

Cria um MethodCallExpression que representa uma chamada a um método estático que recebe 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

A MethodInfo para definir a Method propriedade igual a .

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.

Devoluções

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

Exceções

method é null.

Aplica-se a

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

Cria um MethodCallExpression que representa uma chamada para um método ao chamar 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);
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

E cujo ExpressionType valor da propriedade será pesquisado por um método específico.

methodName
String

O nome do método.

typeArguments
Type[]

Um array de Type objetos que especificam os parâmetros de tipo do método genérico. Este argumento deveria ser nulo quando o método Nome especificar um método não genérico.

arguments
Expression[]

Um array de Expression objetos que representa os argumentos do método.

Devoluções

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

Exceções

instance ou methodName é null.

Nenhum método cujo nome é methodName, cujos parâmetros de tipo coincidem typeArgumentscom , e cujos tipos de parâmetros coincidem arguments é encontrado em instance. Tipo ou os seus tipos base.

-ou-

Mais do que um método cujo nome é methodName, cujos parâmetros de tipo coincidem typeArgumentscom , e cujos tipos de parâmetros coincidem arguments encontram-se em instance. Tipo ou os seus tipos base.

Observações

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

Aplica-se a

Call(Expression, MethodInfo, Expression, Expression)

Cria um MethodCallExpression que representa uma chamada a 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);
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 para uma chamada de instância. (pass null para um método estático (Shared in Visual Basic)).

method
MethodInfo

O MethodInfo que representa o método alvo.

arg0
Expression

O Expression que representa o primeiro argumento.

arg1
Expression

O Expression que representa o segundo argumento.

Devoluções

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

Exemplos

O exemplo de código seguinte 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)

Cria um MethodCallExpression que representa uma chamada a 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

A MethodInfo para definir a Method propriedade igual a .

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.

Devoluções

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

Exceções

method é null.

Aplica-se a

Call(Expression, MethodInfo, Expression[])

Cria um MethodCallExpression que representa uma chamada a um método que recebe 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);
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 método Expression que especifica a instância para uma chamada de método de instância (passe null para um método static (Shared em Visual Basic)).

method
MethodInfo

A MethodInfo para definir a Method propriedade igual a .

arguments
Expression[]

Um conjunto de Expression objetos para preencher a Arguments coleção.

Devoluções

A MethodCallExpression que tem a NodeType propriedade igual a Call e o Object, Method, e Arguments propriedades 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 declarante do método representado por 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 são atribuídos ao parâmetro correspondente para o método representado por method.

Observações

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

Se method representa um método de instância, a Type propriedade de instance deve ser atribuída ao tipo declarante do método representado por method.

Se arguments não nullfor , deve 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ído ao parâmetro correspondente de method, possivelmente após citação.

Note

Um elemento só será citado se o parâmetro de método correspondente for do tipo Expression. Citar significa que o elemento está envolto num Quote nó. O nó resultante é a UnaryExpression cuja Operand propriedade é o elemento de arguments.

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

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

Aplica-se a

Call(Expression, MethodInfo, IEnumerable<Expression>)

Cria um MethodCallExpression que representa uma chamada a um método que recebe 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);
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 (passe null para um método static (Shared em Visual Basic)).

method
MethodInfo

A MethodInfo para definir a Method propriedade igual a .

arguments
IEnumerable<Expression>

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

Devoluções

A MethodCallExpression que tem a NodeType propriedade igual a Call e o Object, Method, e Arguments propriedades 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 declarante do método representado por 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 são atribuídos ao parâmetro correspondente para o método representado por method.

Observações

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

Se method representa um método de instância, a Type propriedade de instance deve ser atribuída ao tipo declarante do método representado por method.

Se arguments não nullfor , deve 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ído ao parâmetro correspondente de method, possivelmente após citação.

Note

Um elemento só será citado se o parâmetro de método correspondente for do tipo Expression. Citar significa que o elemento está envolto num Quote nó. O nó resultante é a UnaryExpression cuja Operand propriedade é o elemento de arguments.

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

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

Aplica-se a

Call(MethodInfo, Expression[])

Cria um método MethodCallExpression que representa uma chamada a um método static (Shared em 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);
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 método MethodInfo que representa um método static (Shared em Visual Basic) para definir a propriedade Method igual a.

arguments
Expression[]

Um conjunto de Expression objetos para preencher a Arguments coleção.

Devoluções

A MethodCallExpression que tem a NodeType propriedade igual a Call e as Method propriedades 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 são atribuídos ao parâmetro correspondente para o método representado por method.

Observações

Se arguments não nullfor , deve 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ído ao parâmetro correspondente de method, possivelmente após citação.

Note

Um elemento só será citado se o parâmetro de método correspondente for do tipo Expression. Citar significa que o elemento está envolto num Quote nó. O nó resultante é a UnaryExpression cuja Operand propriedade é o elemento de arguments.

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

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

Aplica-se a

Call(MethodInfo, Expression)

Cria um método MethodCallExpression que representa uma chamada a um método static (Shared em Visual Basic) que utiliza 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

A MethodInfo para definir a Method propriedade igual a .

arg0
Expression

O Expression que representa o primeiro argumento.

Devoluções

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

Exceções

method é null.

Exemplos

O exemplo seguinte demonstra como criar uma expressão que chama um método static (Shared em Visual Basic) que utiliza 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>)

Cria um MethodCallExpression que representa uma chamada para um método estático (Partilhado em 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);
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 alvo.

arguments
IEnumerable<Expression>

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

Devoluções

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

Aplica-se a

Call(Expression, MethodInfo)

Cria um MethodCallExpression que representa uma chamada a 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);
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 método Expression que especifica a instância para uma chamada de método de instância (passe null para um método static (Shared em Visual Basic)).

method
MethodInfo

A MethodInfo para definir a Method propriedade igual a .

Devoluções

A MethodCallExpression que tem a NodeType propriedade igual a Call e as Object propriedades 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 declarante do método representado por method.

Exemplos

O exemplo de código seguinte 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

Observações

Para representar uma chamada a um método static (Shared em Visual Basic), passe null para o parâmetro instance ao chamar este método.

Se method representa um método de instância, a Type propriedade de instance deve ser atribuída ao tipo declarante do método representado por method.

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

Aplica-se a

Call(MethodInfo, Expression, Expression)

Cria um MethodCallExpression que representa uma chamada a 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

A MethodInfo para definir a Method propriedade igual a .

arg0
Expression

O Expression que representa o primeiro argumento.

arg1
Expression

O Expression que representa o segundo argumento.

Devoluções

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

Exceções

method é null.

Aplica-se a