Expression.Call Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um MethodCallExpression.
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 |
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 |
Call(MethodInfo, Expression) |
Cria um MethodCallExpression que representa uma chamada para um método |
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 null
for , 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 arguments
que , 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 null
for , 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 arguments
que , 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 null
for , 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 arguments
que , 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.