MethodCallExpression Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет вызов статического или экземплярного метода.
public ref class MethodCallExpression : System::Linq::Expressions::Expression, System::Linq::Expressions::IArgumentProvider
public ref class MethodCallExpression sealed : System::Linq::Expressions::Expression
public ref class MethodCallExpression : System::Linq::Expressions::Expression
public class MethodCallExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider
public sealed class MethodCallExpression : System.Linq.Expressions.Expression
public class MethodCallExpression : System.Linq.Expressions.Expression
type MethodCallExpression = class
inherit Expression
interface IArgumentProvider
type MethodCallExpression = class
inherit Expression
Public Class MethodCallExpression
Inherits Expression
Implements IArgumentProvider
Public NotInheritable Class MethodCallExpression
Inherits Expression
Public Class MethodCallExpression
Inherits Expression
- Наследование
- Реализации
Примеры
В следующем примере создается MethodCallExpression объект, представляющий индексирование в двухмерный массив.
string[,] gradeArray =
{ {"chemistry", "history", "mathematics"}, {"78", "61", "82"} };
System.Linq.Expressions.Expression arrayExpression =
System.Linq.Expressions.Expression.Constant(gradeArray);
// Create a MethodCallExpression that represents indexing
// into the two-dimensional array 'gradeArray' at (0, 2).
// Executing the expression would return "mathematics".
System.Linq.Expressions.MethodCallExpression methodCallExpression =
System.Linq.Expressions.Expression.ArrayIndex(
arrayExpression,
System.Linq.Expressions.Expression.Constant(0),
System.Linq.Expressions.Expression.Constant(2));
Console.WriteLine(methodCallExpression.ToString());
// This code produces the following output:
//
// value(System.String[,]).Get(0, 2)
Dim gradeArray(,) As String = _
{{"chemistry", "history", "mathematics"}, {"78", "61", "82"}}
Dim arrayExpression As System.Linq.Expressions.Expression = _
System.Linq.Expressions.Expression.Constant(gradeArray)
' Create a MethodCallExpression that represents indexing
' into the two-dimensional array 'gradeArray' at (0, 2).
' Executing the expression would return "mathematics".
Dim methodCallExpression As System.Linq.Expressions.MethodCallExpression = _
System.Linq.Expressions.Expression.ArrayIndex( _
arrayExpression, _
System.Linq.Expressions.Expression.Constant(0), _
System.Linq.Expressions.Expression.Constant(2))
Console.WriteLine(methodCallExpression.ToString())
' This code produces the following output:
'
' value(System.String[,]).Get(0, 2)
Комментарии
CallИспользуйте метод ,ArrayIndexили ArrayIndex фабрики для создания MethodCallExpressionобъекта.
Значение NodeType свойства MethodCallExpression объекта.Call
Свойства
| Имя | Описание |
|---|---|
| Arguments |
Возвращает коллекцию выражений, представляющих аргументы вызываемого метода. |
| CanReduce |
Указывает, что узел может быть сокращен до более простого узла. Если это возвращает значение true, можно вызвать reduce() для создания сокращенной формы. (Унаследовано от Expression) |
| Method |
Возвращает вызываемого MethodInfo метода. |
| NodeType |
Возвращает тип узла этого Expressionтипа. |
| NodeType |
Возвращает тип узла данного Expressionобъекта. (Унаследовано от Expression) |
| Object |
Возвращает значение Expression , представляющее экземпляр для вызовов метода экземпляра или null для вызовов статических методов. |
| Type |
Возвращает статический тип выражения, представляющего это Expression выражение. |
| Type |
Возвращает статический тип выражения, представляющего это Expression выражение. (Унаследовано от Expression) |
Методы
| Имя | Описание |
|---|---|
| Accept(ExpressionVisitor) |
Отправляется в конкретный метод посещения для этого типа узла. Например, MethodCallExpression вызывает объект VisitMethodCall(MethodCallExpression). |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| Reduce() |
Сокращает этот узел до более простого выражения. Если CanReduce возвращает значение true, это должно возвращать допустимое выражение. Этот метод может возвращать другой узел, который должен быть сокращен. (Унаследовано от Expression) |
| ReduceAndCheck() |
Сокращает этот узел до более простого выражения. Если CanReduce возвращает значение true, это должно возвращать допустимое выражение. Этот метод может возвращать другой узел, который должен быть сокращен. (Унаследовано от Expression) |
| ReduceExtensions() |
Уменьшает выражение до известного типа узла (который не является узлом расширения) или просто возвращает выражение, если оно уже известного типа. (Унаследовано от Expression) |
| ToString() |
Возвращает текстовое представление Expressionобъекта . (Унаследовано от Expression) |
| Update(Expression, IEnumerable<Expression>) |
Создает новое выражение, аналогичное этому, но используя предоставленные дочерние элементы. Если все дочерние элементы одинаковы, он вернет это выражение. |
| VisitChildren(ExpressionVisitor) |
Уменьшает узел, а затем вызывает делегат посетителя в сокращенном выражении. Метод создает исключение, если узел не является редуцируемым. (Унаследовано от Expression) |
Явные реализации интерфейса
| Имя | Описание |
|---|---|
| IArgumentProvider.ArgumentCount |
Возвращает количество аргументов в узле дерева выражений. Этот член не следует использовать. Она доступна только из-за рефакторинга сборки и используется внутренне для оптимизации производительности. |
| IArgumentProvider.GetArgument(Int32) |
Возвращает аргумент по индексу, вызывая, если индекс выходит за пределы. Этот член не следует использовать. Она доступна только из-за рефакторинга сборки и используется внутренне для оптимизации производительности. |