MethodCallExpression 类  
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示对静态方法或实例方法的调用。
public ref class MethodCallExpression : System::Linq::Expressions::Expression, System::Linq::Expressions::IArgumentProviderpublic ref class MethodCallExpression sealed : System::Linq::Expressions::Expressionpublic ref class MethodCallExpression : System::Linq::Expressions::Expressionpublic class MethodCallExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProviderpublic sealed class MethodCallExpression : System.Linq.Expressions.Expressionpublic class MethodCallExpression : System.Linq.Expressions.Expressiontype MethodCallExpression = class
    inherit Expression
    interface IArgumentProvidertype MethodCallExpression = class
    inherit ExpressionPublic Class MethodCallExpression
Inherits Expression
Implements IArgumentProviderPublic NotInheritable Class MethodCallExpression
Inherits ExpressionPublic 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。
对象的 Call属性的MethodCallExpression值为 NodeType 。
属性
| Arguments | 获取表示所调用方法的参数的表达式集合。 | 
| CanReduce | 指示可将节点简化为更简单的节点。 如果返回 true,则可以调用 Reduce() 以生成简化形式。(继承自 Expression) | 
| Method | 获取要调用的方法的 MethodInfo。 | 
| NodeType | 返回此 Expression 的节点类型。 | 
| NodeType | 获取此 Expression 的节点类型。(继承自 Expression) | 
| Object | 获取表示实例方法调用的实例或静态方法调用的 null 的 Expression。 | 
| Type | 获取此 Expression 表示的表达式的静态类型。 | 
| Type | 获取此 Expression 表示的表达式的静态类型。(继承自 Expression) | 
方法
| Accept(ExpressionVisitor) | 调度到此节点类型的特定 Visit 方法。 例如,MethodCallExpression 调用 VisitMethodCall(MethodCallExpression)。 | 
| Accept(ExpressionVisitor) | 调度到此节点类型的特定 Visit 方法。 例如,MethodCallExpression 调用 VisitMethodCall(MethodCallExpression)。(继承自 Expression) | 
| Equals(Object) | 确定指定对象是否等于当前对象。(继承自 Object) | 
| GetHashCode() | 作为默认哈希函数。(继承自 Object) | 
| GetType() | 获取当前实例的 Type。(继承自 Object) | 
| MemberwiseClone() | 创建当前 Object 的浅表副本。(继承自 Object) | 
| Reduce() | 将此节点简化为更简单的表达式。 如果 CanReduce 返回 true,则它应返回有效的表达式。 此方法可以返回本身必须简化的另一个节点。(继承自 Expression) | 
| ReduceAndCheck() | 将此节点简化为更简单的表达式。 如果 CanReduce 返回 true,则它应返回有效的表达式。 此方法可以返回本身必须简化的另一个节点。(继承自 Expression) | 
| ReduceExtensions() | 将表达式简化为已知节点类型(即非 Extension 节点)或仅在此类型为已知类型时返回表达式。(继承自 Expression) | 
| ToString() | 返回 Expression 的的文本化表示形式。(继承自 Expression) | 
| Update(Expression, IEnumerable<Expression>) | 创建一个新的表达式,它类似于此表达式,但使用所提供的子级。 如果所有子级均相同,它将返回此表达式。 | 
| VisitChildren(ExpressionVisitor) | 简化节点,然后对简化的表达式调用访问者委托。 该方法在节点不可简化时引发异常。(继承自 Expression) | 
显式接口实现
| IArgumentProvider.ArgumentCount | 返回表达式树节点的参数数目。 不应使用此成员。 由于程序集重构,只能为公共的;并且在内部用于性能优化。 | 
| IArgumentProvider.GetArgument(Int32) | 索引时返回参数,当索引超出界限时引发。 不应使用此成员。 由于程序集重构,只能为公共的;并且在内部用于性能优化。 |