Поделиться через


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
Реализации

Примеры

В следующем примере создается 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)

Возвращает аргумент по индексу, вызывая, если индекс выходит за пределы. Этот член не следует использовать. Она доступна только из-за рефакторинга сборки и используется внутренне для оптимизации производительности.

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