MethodCallExpression クラス

定義

静的メソッドまたはインスタンス メソッドへの呼び出しを表します。Represents a call to either static or an instance method.

public ref class MethodCallExpression : System::Linq::Expressions::Expression, System::Linq::Expressions::IArgumentProvider
public class MethodCallExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider
type MethodCallExpression = class
    inherit Expression
    interface IArgumentProvider
Public Class MethodCallExpression
Inherits Expression
Implements IArgumentProvider
継承
MethodCallExpression
実装

次の例ではMethodCallExpression 、2次元配列へのインデックス作成を表すオブジェクトを作成します。The following example creates a MethodCallExpression object that represents indexing into a two-dimensional array.

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 MethodCallExpression、またはArrayIndexファクトリメソッドを使用して、を作成します。 ArrayIndexUse the Call, ArrayIndex, or ArrayIndex factory method to create a MethodCallExpression.

オブジェクトのプロパティNodeTypeの値がCallです。 MethodCallExpressionThe value of the NodeType property of a MethodCallExpression object is Call.

プロパティ

Arguments

呼び出されたメソッドの引数を表す式のコレクションを取得します。Gets a collection of expressions that represent arguments of the called method.

CanReduce

ノードをより単純なノードに変形できることを示します。Indicates that the node can be reduced to a simpler node. これが true を返す場合、Reduce() を呼び出して単純化された形式を生成できます。If this returns true, Reduce() can be called to produce the reduced form.

(継承元 Expression)
Method

呼び出されるメソッドの MethodInfo を取得します。Gets the MethodInfo for the method to be called.

NodeType

この Expression のノード型を返します。Returns the node type of this Expression.

Object

インスタンス (インスタンス メソッド呼び出しの場合) または null (静的メソッド呼び出しの場合) を表す Expression を取得します。Gets the Expression that represents the instance for instance method calls or null for static method calls.

Type

この Expression が表す式の静的な型を取得します。Gets the static type of the expression that this Expression represents.

メソッド

Accept(ExpressionVisitor)

このノード型の特定の Visit メソッドにデスパッチします。Dispatches to the specific visit method for this node type. たとえば、MethodCallExpressionVisitMethodCall(MethodCallExpression) を呼び出します。For example, MethodCallExpression calls the VisitMethodCall(MethodCallExpression).

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
Reduce()

このノードをより単純な式に変形します。Reduces this node to a simpler expression. CanReduce が true を返す場合、これは有効な式を返します。If CanReduce returns true, this should return a valid expression. このメソッドは、それ自体も単純化する必要がある別のノードを返す場合があります。This method can return another node which itself must be reduced.

(継承元 Expression)
ReduceAndCheck()

このノードをより単純な式に変形します。Reduces this node to a simpler expression. CanReduce が true を返す場合、これは有効な式を返します。If CanReduce returns true, this should return a valid expression. このメソッドは、それ自体も単純化する必要がある別のノードを返す場合があります。This method can return another node which itself must be reduced.

(継承元 Expression)
ReduceExtensions()

式を既知のノード型 (拡張ノードではない型) に単純化し、それが既に既知の型である場合は単に式を返します。Reduces the expression to a known node type (that is not an Extension node) or just returns the expression if it is already a known type.

(継承元 Expression)
ToString()

Expression のテキスト表現を返します。Returns a textual representation of the Expression.

(継承元 Expression)
Update(Expression, IEnumerable<Expression>)

この式に似た新しい式を作成しますが、指定された子を使用します。Creates a new expression that is like this one, but using the supplied children. すべての子が同じであれば、この式が返されます。If all of the children are the same, it will return this expression.

VisitChildren(ExpressionVisitor)

ノードを単純化し、単純化された式の visitor デリゲートを呼び出します。Reduces the node and then calls the visitor delegate on the reduced expression. ノードを単純化できない場合、このメソッドは例外をスローします。The method throws an exception if the node is not reducible.

(継承元 Expression)

明示的なインターフェイスの実装

IArgumentProvider.ArgumentCount

式ツリー ノードに引数の数を返します。Returns the number of arguments to the expression tree node. このメンバーを使用しないでください。You should not use this member. これは、アセンブリ リファクタリングのためパブリックのみで、パフォーマンスの最適化のために内部で使用されます。It is only public due to assembly refactoring, and it is used internally for performance optimizations.

IArgumentProvider.GetArgument(Int32)

インデックスの引数を返し、インデックスが範囲外にある場合にスローします。Returns the argument at index, throwing if index is out of bounds. このメンバーを使用しないでください。You should not use this member. これは、アセンブリ リファクタリングのためパブリックのみで、パフォーマンスの最適化のために内部で使用されます。It is only public due to assembly refactoring, and it is used internally for performance optimizations.

適用対象