Бөлісу құралы:


Expression.Call Метод

Определение

Создает объект MethodCallExpression.

Перегрузки

Имя Описание
Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

Создает объект MethodCallExpression , представляющий вызов статического метода, который принимает пять аргументов.

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

Создает объект MethodCallExpression , представляющий вызов метода, который принимает три аргумента.

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

MethodCallExpression Создает метод, представляющий вызов static метода (Sharedв Visual Basic), вызвав соответствующий метод фабрики.

Call(MethodInfo, Expression, Expression, Expression)

Создает вызов MethodCallExpression статического метода, который принимает три аргумента.

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

Создает объект MethodCallExpression , представляющий вызов метода, вызывая соответствующий метод фабрики.

Call(Expression, MethodInfo, Expression, Expression)

Создает объект MethodCallExpression , представляющий вызов метода, который принимает два аргумента.

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

Создает вызов MethodCallExpression статического метода, который принимает четыре аргумента.

Call(Expression, MethodInfo, Expression[])

Создает объект MethodCallExpression , представляющий вызов метода, который принимает аргументы.

Call(Expression, MethodInfo, IEnumerable<Expression>)

Создает объект MethodCallExpression , представляющий вызов метода, который принимает аргументы.

Call(MethodInfo, Expression[])

Создает метод MethodCallExpression , представляющий вызов static метода (Shared в Visual Basic), который имеет аргументы.

Call(MethodInfo, Expression)

Создает метод MethodCallExpression , представляющий вызов static метода (Shared в Visual Basic), который принимает один аргумент.

Call(MethodInfo, IEnumerable<Expression>)

Создает метод MethodCallExpression , представляющий вызов статического метода (shared in Visual Basic).

Call(Expression, MethodInfo)

Создает объект MethodCallExpression , представляющий вызов метода, который не принимает аргументы.

Call(MethodInfo, Expression, Expression)

Создает объект MethodCallExpression , представляющий вызов статического метода, который принимает два аргумента.

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

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает объект MethodCallExpression , представляющий вызов статического метода, который принимает пять аргументов.

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

Параметры

method
MethodInfo

Значение, MethodInfo равное свойству Method .

arg0
Expression

Значение Expression , представляющее первый аргумент.

arg1
Expression

Значение Expression , представляющее второй аргумент.

arg2
Expression

Значение Expression , представляющее третий аргумент.

arg3
Expression

Значение Expression , представляющее четвертый аргумент.

arg4
Expression

Значение Expression , представляющее пятый аргумент.

Возвращаемое значение

Значение MethodCallExpression , равное свойству NodeTypeCall и ObjectMethod свойствам, заданным указанным значениям.

Исключения

Параметр method имеет значение null.

Применяется к

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

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает объект MethodCallExpression , представляющий вызов метода, который принимает три аргумента.

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

Параметры

instance
Expression

Объект, Expression указывающий экземпляр для вызова экземпляра. (передайте значение NULL для статического метода (shared in Visual Basic).

method
MethodInfo

Объект MethodInfo , представляющий целевой метод.

arg0
Expression

Значение Expression , представляющее первый аргумент.

arg1
Expression

Значение Expression , представляющее второй аргумент.

arg2
Expression

Значение Expression , представляющее третий аргумент.

Возвращаемое значение

Значение MethodCallExpression , равное свойству NodeTypeCall и ObjectMethod свойствам, заданным указанным значениям.

Применяется к

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

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

MethodCallExpression Создает метод, представляющий вызов static метода (Sharedв Visual Basic), вызвав соответствующий метод фабрики.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(Type ^ type, System::String ^ methodName, cli::array <Type ^> ^ typeArguments, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call(Type type, string methodName, Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")]
public static System.Linq.Expressions.MethodCallExpression Call(Type type, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
public static System.Linq.Expressions.MethodCallExpression Call(Type type, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")]
public static System.Linq.Expressions.MethodCallExpression Call(Type type, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
static member Call : Type * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")>]
static member Call : Type * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Calling a generic method cannot be statically analyzed. It's not possible to guarantee the availability of requirements of the generic method. This can be suppressed if the method is not generic.")>]
static member Call : Type * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (type As Type, methodName As String, typeArguments As Type(), ParamArray arguments As Expression()) As MethodCallExpression

Параметры

type
Type

Тип, содержащий указанный staticShared (в Visual Basic) метод.

methodName
String

Имя метода.

typeArguments
Type[]

Массив объектов, указывающих Type параметры типа универсального метода. Этот аргумент должен иметь значение NULL, если имя метода указывает не универсальный метод.

arguments
Expression[]

Массив Expression объектов, представляющих аргументы метода.

Возвращаемое значение

NodeType ЗначениеMethodCallExpression, равное свойствуCall, Method свойству, заданному MethodInfo методу static (Shared в Visual Basic), и Arguments свойству, заданному указанным аргументам.

Атрибуты

Исключения

type или methodName есть null.

Нет метода, имя methodNameкоторого совпадает с параметрами typeArgumentsтипа, и типы параметров которого находятся arguments в type или его базовых типах.

–или–

Более одного метода, имя которого совпадает methodNameс параметрами typeArgumentsтипа, и типы параметров которого соответствуют typearguments базовым типам.

Комментарии

Свойство Type результирующего MethodCallExpression объекта равно типу возвращаемого метода, обозначаемого methodName. Свойство Object является null.

Применяется к

Call(MethodInfo, Expression, Expression, Expression)

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает вызов MethodCallExpression статического метода, который принимает три аргумента.

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

Параметры

method
MethodInfo

Значение, MethodInfo равное свойству Method .

arg0
Expression

Значение Expression , представляющее первый аргумент.

arg1
Expression

Значение Expression , представляющее второй аргумент.

arg2
Expression

Значение Expression , представляющее третий аргумент.

Возвращаемое значение

Значение MethodCallExpression , равное свойству NodeTypeCall и ObjectMethod свойствам, заданным указанным значениям.

Исключения

Параметр method имеет значение null.

Применяется к

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

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает объект MethodCallExpression , представляющий вызов метода, вызывая соответствующий метод фабрики.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::String ^ methodName, cli::array <Type ^> ^ typeArguments, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call(System.Linq.Expressions.Expression instance, string methodName, Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")]
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.MethodCallExpression Call(System.Linq.Expressions.Expression instance, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
public static System.Linq.Expressions.MethodCallExpression Call(System.Linq.Expressions.Expression instance, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")]
public static System.Linq.Expressions.MethodCallExpression Call(System.Linq.Expressions.Expression instance, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Linq.Expressions.Expression * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Calling a generic method requires dynamic code generation. This can be suppressed if the method is not generic.")>]
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member Call : System.Linq.Expressions.Expression * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
[<System.Diagnostics.CodeAnalysis.RequiresUnreferencedCode("Creating Expressions requires unreferenced code because the members being referenced by the Expression may be trimmed.")>]
static member Call : System.Linq.Expressions.Expression * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, methodName As String, typeArguments As Type(), ParamArray arguments As Expression()) As MethodCallExpression

Параметры

instance
Expression

Значение Expression свойства которого Type будет искать конкретный метод.

methodName
String

Имя метода.

typeArguments
Type[]

Массив объектов, указывающих Type параметры типа универсального метода. Этот аргумент должен иметь значение NULL, если имя метода указывает не универсальный метод.

arguments
Expression[]

Массив Expression объектов, представляющих аргументы метода.

Возвращаемое значение

ЗначениеMethodCallExpression, равное свойствуCallinstance, Object равному свойству, Method присваивается MethodInfo значение, представляющее указанный метод экземпляра, и Arguments задает заданные аргументыNodeType.

Атрибуты

Исключения

instance или methodName есть null.

Нет метода, имя methodNameкоторого совпадает с параметрами typeArgumentsтипа, и в котором находятся argumentsinstanceтипы параметров. Тип или базовые типы.

–или–

Более одного метода, имя которого совпадает methodNameс параметрами typeArgumentsтипа, и в котором находятся argumentsinstanceтипы параметров. Тип или базовые типы.

Комментарии

Свойство Type результирующего MethodCallExpression объекта равно типу возвращаемого метода, обозначаемого methodName.

Применяется к

Call(Expression, MethodInfo, Expression, Expression)

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает объект MethodCallExpression , представляющий вызов метода, который принимает два аргумента.

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

Параметры

instance
Expression

Объект, Expression указывающий экземпляр для вызова экземпляра. (передайте значение NULL для статического метода (shared in Visual Basic).

method
MethodInfo

Объект MethodInfo , представляющий целевой метод.

arg0
Expression

Значение Expression , представляющее первый аргумент.

arg1
Expression

Значение Expression , представляющее второй аргумент.

Возвращаемое значение

Значение MethodCallExpression , равное свойству NodeTypeCall и ObjectMethod свойствам, заданным указанным значениям.

Примеры

В следующем примере кода показано, как создать выражение, которое вызывает метод экземпляра с двумя аргументами.

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

Применяется к

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

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает вызов MethodCallExpression статического метода, который принимает четыре аргумента.

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

Параметры

method
MethodInfo

Значение, MethodInfo равное свойству Method .

arg0
Expression

Значение Expression , представляющее первый аргумент.

arg1
Expression

Значение Expression , представляющее второй аргумент.

arg2
Expression

Значение Expression , представляющее третий аргумент.

arg3
Expression

Значение Expression , представляющее четвертый аргумент.

Возвращаемое значение

Значение MethodCallExpression , равное свойству NodeTypeCall и ObjectMethod свойствам, заданным указанным значениям.

Исключения

Параметр method имеет значение null.

Применяется к

Call(Expression, MethodInfo, Expression[])

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает объект MethodCallExpression , представляющий вызов метода, который принимает аргументы.

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

Параметры

instance
Expression

Объект, Expression указывающий экземпляр вызова метода экземпляра (передается null для staticShared метода (в Visual Basic).

method
MethodInfo

Значение, MethodInfo равное свойству Method .

arguments
Expression[]

Массив объектов, используемых Expression для заполнения Arguments коллекции.

Возвращаемое значение

ЗначениеMethodCallExpression, равное свойству NodeTypeCall и ObjectMethodсвойству, Arguments заданному указанным значениям.

Исключения

method равно null.

–или–

instance является null и method представляет метод экземпляра.

–или–

arguments не null является и одним или несколькими его элементами nullявляется .

instance. Тип не присваивается декларируемому типу метода, methodпредставленному .

–или–

Число элементов в arguments не равно числу параметров метода, представленного методом method.

–или–

Один или несколько элементов arguments не могут назначаться соответствующему параметру для метода, представленного методом method.

Комментарии

Чтобы представить вызов static метода (Shared в Visual Basic), передайте null параметр instance при вызове этого метода или вызов Call .

Если method представляет метод экземпляра, Type свойство instance должно быть присвоено декларируемому типу метода, methodпредставленному .

Если arguments это не nullтак, оно должно иметь то же количество элементов, что и число параметров для метода, представленного method. Каждый элемент в arguments не должен быть null и должен быть назначен соответствующему параметру method, возможно, после кавыка.

Замечание

Элемент будет кавычек только в том случае, если соответствующий параметр метода имеет тип Expression. Кавыкание означает, что элемент упаковывается в Quote узел. Результирующий узел — это UnaryExpression свойство, свойство которого Operandargumentsявляется элементом .

Свойство Arguments результирующего MethodCallExpression объекта пусто, если arguments имеет значение null. В противном случае он содержит те же элементы, что argumentsи некоторые из которых могут быть кавычек.

Свойство Type результирующего MethodCallExpression объекта равно типу возвращаемого метода, представленного method.

Применяется к

Call(Expression, MethodInfo, IEnumerable<Expression>)

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает объект MethodCallExpression , представляющий вызов метода, который принимает аргументы.

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

Параметры

instance
Expression

Значение Expression для задания Object свойства равно (передается null для static метода (Shared в Visual Basic).

method
MethodInfo

Значение, MethodInfo равное свойству Method .

arguments
IEnumerable<Expression>

Объект IEnumerable<T> , содержащий Expression объекты, используемые для заполнения Arguments коллекции.

Возвращаемое значение

ЗначениеMethodCallExpression, равное свойству NodeTypeCall и ObjectMethodсвойству, Arguments заданному указанным значениям.

Исключения

method равно null.

–или–

instance является null и method представляет метод экземпляра.

instance. Тип не присваивается декларируемому типу метода, methodпредставленному .

–или–

Число элементов в arguments не равно числу параметров метода, представленного методом method.

–или–

Один или несколько элементов arguments не могут назначаться соответствующему параметру для метода, представленного методом method.

Комментарии

Чтобы представить вызов static метода (Shared в Visual Basic), передайте null параметр instance при вызове этого метода или вызов Call .

Если method представляет метод экземпляра, Type свойство instance должно быть присвоено декларируемому типу метода, methodпредставленному .

Если arguments это не nullтак, оно должно иметь то же количество элементов, что и число параметров для метода, представленного method. Каждый элемент в arguments не должен быть null и должен быть назначен соответствующему параметру method, возможно, после кавыка.

Замечание

Элемент будет кавычек только в том случае, если соответствующий параметр метода имеет тип Expression. Кавыкание означает, что элемент упаковывается в Quote узел. Результирующий узел — это UnaryExpression свойство, свойство которого Operandargumentsявляется элементом .

Свойство Arguments результирующего MethodCallExpression объекта пусто, если arguments имеет значение null. В противном случае он содержит те же элементы, что argumentsи некоторые из которых могут быть кавычек.

Свойство Type результирующего MethodCallExpression объекта равно типу возвращаемого метода, представленного method.

Применяется к

Call(MethodInfo, Expression[])

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает метод MethodCallExpression , представляющий вызов static метода (Shared в Visual Basic), который имеет аргументы.

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

Параметры

method
MethodInfo

Метод, MethodInfo представляющий метод (Sharedв Visual Basic), для задания Methodstatic свойства равным.

arguments
Expression[]

Массив объектов, используемых Expression для заполнения Arguments коллекции.

Возвращаемое значение

Значение MethodCallExpression , равное свойству NodeTypeCall и MethodArguments свойствам, заданным указанным значениям.

Исключения

method равно null.

Число элементов в arguments не равно числу параметров метода, представленного методом method.

–или–

Один или несколько элементов arguments не могут назначаться соответствующему параметру для метода, представленного методом method.

Комментарии

Если arguments это не nullтак, оно должно иметь то же количество элементов, что и число параметров для метода, представленного method. Каждый элемент в arguments не должен быть null и должен быть назначен соответствующему параметру method, возможно, после кавыка.

Замечание

Элемент будет кавычек только в том случае, если соответствующий параметр метода имеет тип Expression. Кавыкание означает, что элемент упаковывается в Quote узел. Результирующий узел — это UnaryExpression свойство, свойство которого Operandargumentsявляется элементом .

Свойство Arguments результирующего MethodCallExpression объекта пусто, если arguments имеет значение null. В противном случае он содержит те же элементы, что argumentsи некоторые из которых могут быть кавычек.

Свойство Type результирующего MethodCallExpression объекта равно типу возвращаемого метода, представленного method. Свойство Object является null.

Применяется к

Call(MethodInfo, Expression)

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает метод MethodCallExpression , представляющий вызов static метода (Shared в Visual Basic), который принимает один аргумент.

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

Параметры

method
MethodInfo

Значение, MethodInfo равное свойству Method .

arg0
Expression

Значение Expression , представляющее первый аргумент.

Возвращаемое значение

Значение MethodCallExpression , равное свойству NodeTypeCall и ObjectMethod свойствам, заданным указанным значениям.

Исключения

Параметр method имеет значение null.

Примеры

В следующем примере показано, как создать выражение, которое вызывает static метод (Shared в Visual Basic), принимающее один аргумент.

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

Применяется к

Call(MethodInfo, IEnumerable<Expression>)

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает метод MethodCallExpression , представляющий вызов статического метода (shared in Visual Basic).

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call(System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.MethodCallExpression Call(System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Call : System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arguments As IEnumerable(Of Expression)) As MethodCallExpression

Параметры

method
MethodInfo

Объект MethodInfo , представляющий целевой метод.

arguments
IEnumerable<Expression>

Коллекция Expression , представляющая аргументы вызова.

Возвращаемое значение

Значение MethodCallExpression , равное свойству NodeTypeCall и ObjectMethod свойствам, заданным указанным значениям.

Применяется к

Call(Expression, MethodInfo)

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает объект MethodCallExpression , представляющий вызов метода, который не принимает аргументы.

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

Параметры

instance
Expression

Объект, Expression указывающий экземпляр вызова метода экземпляра (передается null для staticShared метода (в Visual Basic).

method
MethodInfo

Значение, MethodInfo равное свойству Method .

Возвращаемое значение

Значение MethodCallExpression , равное свойству NodeTypeCall и ObjectMethod свойствам, заданным указанным значениям.

Исключения

method равно null.

–или–

instance является null и method представляет метод экземпляра.

instance. Тип не присваивается декларируемому типу метода, methodпредставленному .

Примеры

В следующем примере кода показано, как создать выражение, которое вызывает метод без аргументов.

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

Комментарии

Чтобы представить вызов static метода (Shared в Visual Basic), передайте null параметр при вызове instance этого метода.

Если method представляет метод экземпляра, Type свойство instance должно быть присвоено декларируемому типу метода, methodпредставленному .

Свойство Arguments результирующего MethodCallExpression объекта пусто. Свойство Type равно типу возвращаемого метода, представленного method.

Применяется к

Call(MethodInfo, Expression, Expression)

Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs
Исходный код:
MethodCallExpression.cs

Создает объект MethodCallExpression , представляющий вызов статического метода, который принимает два аргумента.

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

Параметры

method
MethodInfo

Значение, MethodInfo равное свойству Method .

arg0
Expression

Значение Expression , представляющее первый аргумент.

arg1
Expression

Значение Expression , представляющее второй аргумент.

Возвращаемое значение

Значение MethodCallExpression , равное свойству NodeTypeCall и ObjectMethod свойствам, заданным указанным значениям.

Исключения

Параметр method имеет значение null.

Применяется к