Aracılığıyla paylaş


MethodCallExpression Sınıf

Tanım

Statik veya örnek yöntemine yapılan çağrıyı temsil eder.

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
Devralma
MethodCallExpression
Uygulamalar

Örnekler

Aşağıdaki örnek, iki boyutlu bir MethodCallExpression dizide dizin oluşturmayı temsil eden bir nesne oluşturur.

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)

Açıklamalar

Calloluşturmak MethodCallExpressioniçin , ArrayIndexveya ArrayIndex fabrika yöntemini kullanın.

Bir MethodCallExpression nesnenin NodeType özelliğinin değeri şeklindedirCall.

Özellikler

Name Description
Arguments

Çağrılan yöntemin bağımsız değişkenlerini temsil eden ifade koleksiyonunu alır.

CanReduce

Düğümün daha basit bir düğüme indirgenebileceğini gösterir. Bu true döndürürse, azaltılmış formu oluşturmak için Reduce() çağrılabilir.

(Devralındığı yer: Expression)
Method

MethodInfo Yönteminin çağrılacağı öğesini alır.

NodeType

Bunun Expressiondüğüm türünü döndürür.

NodeType

Bu Expressiondüğüm türünü alır.

(Devralındığı yer: Expression)
Object

Expression Örnek yöntemi çağrıları örneğini temsil eden öğesini veya statik yöntem çağrıları için null değerini alır.

Type

Bunun Expression temsil ettiği ifadenin statik türünü alır.

Type

Bunun Expression temsil ettiği ifadenin statik türünü alır.

(Devralındığı yer: Expression)

Yöntemler

Name Description
Accept(ExpressionVisitor)

Bu düğüm türü için belirli bir ziyaret yöntemine gönderilir. Örneğin, MethodCallExpression öğesini çağırır VisitMethodCall(MethodCallExpression).

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
Reduce()

Bu düğümü daha basit bir ifadeye küçültür. CanReduce true döndürürse, bu geçerli bir ifade döndürmelidir. Bu yöntem, azaltması gereken başka bir düğüm döndürebilir.

(Devralındığı yer: Expression)
ReduceAndCheck()

Bu düğümü daha basit bir ifadeye küçültür. CanReduce true döndürürse, bu geçerli bir ifade döndürmelidir. Bu yöntem, azaltması gereken başka bir düğüm döndürebilir.

(Devralındığı yer: Expression)
ReduceExtensions()

İfadeyi bilinen bir düğüm türüne (Uzantı düğümü değildir) küçültür veya zaten bilinen bir türse yalnızca ifadeyi döndürür.

(Devralındığı yer: Expression)
ToString()

öğesinin metinsel gösterimini Expressiondöndürür.

(Devralındığı yer: Expression)
Update(Expression, IEnumerable<Expression>)

Bunun gibi, ancak sağlanan alt öğeleri kullanarak yeni bir ifade oluşturur. Tüm alt öğeler aynıysa, bu ifadeyi döndürür.

VisitChildren(ExpressionVisitor)

Düğümü azaltır ve ardından azaltılmış ifadede ziyaretçi temsilcisini çağırır. Yöntem, düğüm azaltılabilir değilse bir özel durum oluşturur.

(Devralındığı yer: Expression)

Belirtik Arabirim Kullanımları

Name Description
IArgumentProvider.ArgumentCount

İfade ağacı düğümü için bağımsız değişken sayısını döndürür. Bu üyeyi kullanmamalısınız. Yalnızca derleme yeniden düzenlemesi nedeniyle geneldir ve performans iyileştirmeleri için dahili olarak kullanılır.

IArgumentProvider.GetArgument(Int32)

Dizin sınırların dışındaysa atarak dizindeki bağımsız değişkeni döndürür. Bu üyeyi kullanmamalısınız. Yalnızca derleme yeniden düzenlemesi nedeniyle geneldir ve performans iyileştirmeleri için dahili olarak kullanılır.

Şunlara uygulanır