Expression.Call Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает объект MethodCallExpression.
Перегрузки
| Имя | Описание |
|---|---|
| Call(MethodInfo, Expression, Expression, Expression, Expression, Expression) |
Создает объект MethodCallExpression , представляющий вызов статического метода, который принимает пять аргументов. |
| Call(Expression, MethodInfo, Expression, Expression, Expression) |
Создает объект MethodCallExpression , представляющий вызов метода, который принимает три аргумента. |
| Call(Type, String, Type[], Expression[]) |
MethodCallExpression Создает метод, представляющий вызов |
| 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 , представляющий вызов |
| Call(MethodInfo, Expression) |
Создает метод MethodCallExpression , представляющий вызов |
| 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.