Bagikan melalui


Expression.Call Metode

Definisi

Overload

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

MethodCallExpression Membuat yang mewakili panggilan ke metode statis yang mengambil lima argumen.

Call(Expression, MethodInfo, Expression, Expression, Expression)

MethodCallExpression Membuat yang mewakili panggilan ke metode yang mengambil tiga argumen.

Call(Type, String, Type[], Expression[])

MethodCallExpression Membuat yang mewakili panggilan ke static metode (Shared dalam Visual Basic) dengan memanggil metode pabrik yang sesuai.

Call(MethodInfo, Expression, Expression, Expression)

MethodCallExpression Membuat yang mewakili panggilan ke metode statis yang mengambil tiga argumen.

Call(Expression, String, Type[], Expression[])

MethodCallExpression Membuat yang mewakili panggilan ke metode dengan memanggil metode pabrik yang sesuai.

Call(Expression, MethodInfo, Expression, Expression)

MethodCallExpression Membuat yang mewakili panggilan ke metode yang mengambil dua argumen.

Call(MethodInfo, Expression, Expression, Expression, Expression)

MethodCallExpression Membuat yang mewakili panggilan ke metode statis yang mengambil empat argumen.

Call(Expression, MethodInfo, Expression[])

Membuat yang MethodCallExpression mewakili panggilan ke metode yang mengambil argumen.

Call(Expression, MethodInfo, IEnumerable<Expression>)

Membuat yang MethodCallExpression mewakili panggilan ke metode yang mengambil argumen.

Call(MethodInfo, Expression[])

MethodCallExpression Membuat yang mewakili panggilan ke static metode (Shared dalam Visual Basic) yang memiliki argumen.

Call(MethodInfo, Expression)

MethodCallExpression Membuat yang mewakili panggilan ke static metode (Shared dalam Visual Basic) yang mengambil satu argumen.

Call(MethodInfo, IEnumerable<Expression>)

MethodCallExpression Membuat yang mewakili panggilan ke metode statis (Dibagikan dalam Visual Basic).

Call(Expression, MethodInfo)

MethodCallExpression Membuat yang mewakili panggilan ke metode yang tidak mengambil argumen.

Call(MethodInfo, Expression, Expression)

MethodCallExpression Membuat yang mewakili panggilan ke metode statis yang mengambil dua argumen.

Call(MethodInfo, Expression, Expression, Expression, Expression, Expression)

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke metode statis yang mengambil lima argumen.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2, System::Linq::Expressions::Expression ^ arg3, System::Linq::Expressions::Expression ^ arg4);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3, System.Linq.Expressions.Expression arg4);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression, arg3 As Expression, arg4 As Expression) As MethodCallExpression

Parameter

method
MethodInfo

A MethodInfo untuk mengatur properti yang Method sama dengan.

arg0
Expression

Expression yang mewakili argumen pertama.

arg1
Expression

Expression yang mewakili argumen kedua.

arg2
Expression

Expression yang mewakili argumen ketiga.

arg3
Expression

Expression yang mewakili argumen keempat.

arg4
Expression

Expression yang mewakili argumen kelima.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Object properti dan Method diatur ke nilai yang ditentukan.

Pengecualian

method adalah null.

Berlaku untuk

Call(Expression, MethodInfo, Expression, Expression, Expression)

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke metode yang mengambil tiga argumen.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression) As MethodCallExpression

Parameter

instance
Expression

Yang Expression menentukan instans untuk panggilan instans. (teruskan null untuk metode statis (Dibagikan dalam Visual Basic).

method
MethodInfo

MethodInfo yang mewakili metode target.

arg0
Expression

Expression yang mewakili argumen pertama.

arg1
Expression

Expression yang mewakili argumen kedua.

arg2
Expression

Expression yang mewakili argumen ketiga.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Object properti dan Method diatur ke nilai yang ditentukan.

Berlaku untuk

Call(Type, String, Type[], Expression[])

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke static metode (Shared dalam Visual Basic) dengan memanggil metode pabrik yang sesuai.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(Type ^ type, System::String ^ methodName, cli::array <Type ^> ^ typeArguments, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (Type type, string methodName, Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (Type type, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
static member Call : Type * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (type As Type, methodName As String, typeArguments As Type(), ParamArray arguments As Expression()) As MethodCallExpression

Parameter

type
Type

Jenis yang berisi metode yang ditentukan static (Shared dalam Visual Basic).

methodName
String

Nama metode .

typeArguments
Type[]

Array Type objek yang menentukan parameter jenis metode generik. Argumen ini harus null ketika methodName menentukan metode non-generik.

arguments
Expression[]

Array Expression objek yang mewakili argumen ke metode .

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call, Method properti diatur ke MethodInfo yang mewakili metode yang ditentukan static (Shared dalam Visual Basic), dan properti diatur Arguments ke argumen yang ditentukan.

Pengecualian

type atau methodName adalah null.

Tidak ada metode yang namanya , methodNameyang parameter jenisnya cocok typeArguments, dan yang jenis parameternya cocok arguments ditemukan di type atau jenis dasarnya.

-atau-

Lebih dari satu metode yang namanya , methodNameyang parameter jenisnya cocok , dan yang jenis parameternya cocok argumentstypeArgumentsditemukan di type atau jenis dasarnya.

Keterangan

Properti Type dari yang dihasilkan MethodCallExpression sama dengan jenis pengembalian metode yang ditandai dengan methodName. Properti Object adalah null.

Berlaku untuk

Call(MethodInfo, Expression, Expression, Expression)

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke metode statis yang mengambil tiga argumen.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression) As MethodCallExpression

Parameter

method
MethodInfo

A MethodInfo untuk mengatur properti yang Method sama dengan.

arg0
Expression

Expression yang mewakili argumen pertama.

arg1
Expression

Expression yang mewakili argumen kedua.

arg2
Expression

Expression yang mewakili argumen ketiga.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Object properti dan Method diatur ke nilai yang ditentukan.

Pengecualian

method adalah null.

Berlaku untuk

Call(Expression, String, Type[], Expression[])

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke metode dengan memanggil metode pabrik yang sesuai.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::String ^ methodName, cli::array <Type ^> ^ typeArguments, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, string methodName, Type[] typeArguments, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, string methodName, Type[]? typeArguments, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Linq.Expressions.Expression * string * Type[] * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, methodName As String, typeArguments As Type(), ParamArray arguments As Expression()) As MethodCallExpression

Parameter

instance
Expression

Nilai Expression properti yang Type akan dicari untuk metode tertentu.

methodName
String

Nama metode .

typeArguments
Type[]

Array Type objek yang menentukan parameter jenis metode generik. Argumen ini harus null ketika methodName menentukan metode non-generik.

arguments
Expression[]

Array Expression objek yang mewakili argumen ke metode .

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call, Object properti sama dengan instance, Method diatur ke MethodInfo yang mewakili metode instans yang ditentukan, dan Arguments diatur ke argumen yang ditentukan.

Pengecualian

instance atau methodName adalah null.

Tidak ada metode yang namanya , methodNameyang parameter jenisnya cocok typeArguments, dan yang jenis parameternya cocok arguments ditemukan di instance. Jenis atau jenis dasarnya.

-atau-

Lebih dari satu metode yang namanya , methodNameyang parameter jenisnya cocok typeArguments, dan yang jenis parameternya cocok arguments ditemukan di instance. Jenis atau jenis dasarnya.

Keterangan

Properti Type dari yang dihasilkan MethodCallExpression sama dengan jenis pengembalian metode yang ditandai dengan methodName.

Berlaku untuk

Call(Expression, MethodInfo, Expression, Expression)

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke metode yang mengambil dua argumen.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arg0 As Expression, arg1 As Expression) As MethodCallExpression

Parameter

instance
Expression

Yang Expression menentukan instans untuk panggilan instans. (teruskan null untuk metode statis (Dibagikan dalam Visual Basic).

method
MethodInfo

MethodInfo yang mewakili metode target.

arg0
Expression

Expression yang mewakili argumen pertama.

arg1
Expression

Expression yang mewakili argumen kedua.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Object properti dan Method diatur ke nilai yang ditentukan.

Contoh

Contoh kode berikut menunjukkan cara membuat ekspresi yang memanggil metode instans yang memiliki dua argumen.

// Add the following directive to your file:
// using System.Linq.Expressions;
public class SampleClass
{
    public int AddIntegers(int arg1, int arg2)
    {
        return arg1 + arg2;
    }
}

static public void TestCall()
{
    // This expression represents a call to an instance method that has two arguments.
    // The first argument is an expression that creates a new object of the specified type.
    Expression callExpr = Expression.Call(
        Expression.New(typeof(SampleClass)),
        typeof(SampleClass).GetMethod("AddIntegers", new Type[] { typeof(int), typeof(int) }),
        Expression.Constant(1),
        Expression.Constant(2)
        );

    // Print out the expression.
    Console.WriteLine(callExpr.ToString());

    // The following statement first creates an expression tree,
    // then compiles it, and then executes it.
    Console.WriteLine(Expression.Lambda<Func<int>>(callExpr).Compile()());

    // This code example produces the following output:
    //
    // new SampleClass().AddIntegers(1, 2)
    // 3
}
' Add the following directive to your file:
' Imports System.Linq.Expressions  

Public Class SampleClass
    Public Function AddIntegers(ByVal arg1 As Integer, ByVal arg2 As Integer) As Integer
        Return (arg1 + arg2)
    End Function
End Class
Public Shared Sub TestCall()
    ' This expression represents a call to an instance method that has two arguments.
    ' The first argument is an expression that creates a new object of the specified type.
    Dim callExpr As Expression = Expression.Call(
        Expression.[New](GetType(SampleClass)),
        GetType(SampleClass).GetMethod("AddIntegers", New Type() {GetType(Integer), GetType(Integer)}),
        Expression.Constant(1),
        Expression.Constant(2)
      )

    ' Print the expression.
    Console.WriteLine(callExpr.ToString())

    ' The following statement first creates an expression tree,
    ' then compiles it, and then executes it.
    Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(callExpr).Compile()())
End Sub

' This code example produces the following output:
'
' new SampleClass().AddIntegers(1, 2)
' 3

Berlaku untuk

Call(MethodInfo, Expression, Expression, Expression, Expression)

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke metode statis yang mengambil empat argumen.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1, System::Linq::Expressions::Expression ^ arg2, System::Linq::Expressions::Expression ^ arg3);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1, System.Linq.Expressions.Expression arg2, System.Linq.Expressions.Expression arg3);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression, arg2 As Expression, arg3 As Expression) As MethodCallExpression

Parameter

method
MethodInfo

A MethodInfo untuk mengatur properti yang Method sama dengan.

arg0
Expression

Expression yang mewakili argumen pertama.

arg1
Expression

Expression yang mewakili argumen kedua.

arg2
Expression

Expression yang mewakili argumen ketiga.

arg3
Expression

Expression yang mewakili argumen keempat.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Object properti dan Method diatur ke nilai yang ditentukan.

Pengecualian

method adalah null.

Berlaku untuk

Call(Expression, MethodInfo, Expression[])

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

Membuat yang MethodCallExpression mewakili panggilan ke metode yang mengambil argumen.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, ParamArray arguments As Expression()) As MethodCallExpression

Parameter

instance
Expression

Expression Yang menentukan instans untuk panggilan metode instans (lulus null untuk static metode (Shared dalam Visual Basic).

method
MethodInfo

A MethodInfo untuk mengatur properti yang Method sama dengan.

arguments
Expression[]

Array Expression objek yang digunakan untuk mengisi Arguments koleksi.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Objectproperti , , Methoddan Arguments diatur ke nilai yang ditentukan.

Pengecualian

methodadalah null.

-atau-

instance adalah null dan method mewakili metode instans.

-atau-

arguments bukan null dan satu atau beberapa elemennya adalah null.

instance. Jenis tidak dapat ditetapkan ke jenis deklarasi metode yang diwakili oleh method.

-atau-

Jumlah elemen di tidak sama dengan jumlah parameter untuk metode yang diwakili arguments oleh method.

-atau-

Satu atau beberapa elemen arguments tidak dapat ditetapkan ke parameter yang sesuai untuk metode yang diwakili oleh method.

Keterangan

Untuk mewakili panggilan ke static metode (Shared dalam Visual Basic), teruskan null untuk instance parameter saat Anda memanggil metode ini, atau memanggil Call sebagai gantinya.

Jika method mewakili metode instans, Type properti instance harus dapat ditetapkan ke jenis deklarasi metode yang diwakili oleh method.

Jika arguments tidak null, itu harus memiliki jumlah elemen yang sama dengan jumlah parameter untuk metode yang diwakili oleh method. Setiap elemen di arguments tidak boleh null dan harus dapat ditetapkan ke parameter yang sesuai dari method, mungkin setelah mengutip.

Catatan

Elemen akan dikutip hanya jika parameter metode yang sesuai berjenis Expression. Mengutip berarti elemen dibungkus dalam simpul Quote . Simpul yang dihasilkan adalah properti UnaryExpression yang Operand merupakan elemen dari arguments.

Properti Arguments dari yang dihasilkan MethodCallExpression kosong jika arguments adalah null. Jika tidak, ini berisi elemen yang sama dengan arguments, beberapa di antaranya dapat dikutip.

Properti Type dari yang dihasilkan MethodCallExpression sama dengan jenis pengembalian metode yang diwakili oleh method.

Berlaku untuk

Call(Expression, MethodInfo, IEnumerable<Expression>)

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

Membuat yang MethodCallExpression mewakili panggilan ke metode yang mengambil argumen.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo, arguments As IEnumerable(Of Expression)) As MethodCallExpression

Parameter

instance
Expression

Expression Untuk mengatur properti yang Object sama dengan (meneruskan null untuk static metode (Shared dalam Visual Basic).

method
MethodInfo

A MethodInfo untuk mengatur properti yang Method sama dengan.

arguments
IEnumerable<Expression>

Yang IEnumerable<T> berisi Expression objek yang akan digunakan untuk mengisi Arguments koleksi.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Objectproperti , , Methoddan Arguments diatur ke nilai yang ditentukan.

Pengecualian

methodadalah null.

-atau-

instance adalah null dan method mewakili metode instans.

instance. Jenis tidak dapat ditetapkan ke jenis deklarasi metode yang diwakili oleh method.

-atau-

Jumlah elemen di tidak sama dengan jumlah parameter untuk metode yang diwakili arguments oleh method.

-atau-

Satu atau beberapa elemen arguments tidak dapat ditetapkan ke parameter yang sesuai untuk metode yang diwakili oleh method.

Keterangan

Untuk mewakili panggilan ke static metode (Shared dalam Visual Basic), teruskan null untuk instance parameter saat Anda memanggil metode ini, atau memanggil Call sebagai gantinya.

Jika method mewakili metode instans, Type properti instance harus dapat ditetapkan ke jenis deklarasi metode yang diwakili oleh method.

Jika arguments tidak null, itu harus memiliki jumlah elemen yang sama dengan jumlah parameter untuk metode yang diwakili oleh method. Setiap elemen di arguments tidak boleh null dan harus dapat ditetapkan ke parameter yang sesuai dari method, mungkin setelah mengutip.

Catatan

Elemen akan dikutip hanya jika parameter metode yang sesuai berjenis Expression. Mengutip berarti elemen dibungkus dalam simpul Quote . Simpul yang dihasilkan adalah properti UnaryExpression yang Operand merupakan elemen dari arguments.

Properti Arguments dari yang dihasilkan MethodCallExpression kosong jika arguments adalah null. Jika tidak, ini berisi elemen yang sama dengan arguments, beberapa di antaranya dapat dikutip.

Properti Type dari yang dihasilkan MethodCallExpression sama dengan jenis pengembalian metode yang diwakili oleh method.

Berlaku untuk

Call(MethodInfo, Expression[])

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke static metode (Shared dalam Visual Basic) yang memiliki argumen.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, ... cli::array <System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[] arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, params System.Linq.Expressions.Expression[]? arguments);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, ParamArray arguments As Expression()) As MethodCallExpression

Parameter

method
MethodInfo

MethodInfo yang mewakili static metode (Shared dalam Visual Basic) untuk mengatur properti yang Method sama dengan.

arguments
Expression[]

Array Expression objek yang digunakan untuk mengisi Arguments koleksi.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Method properti dan Arguments diatur ke nilai yang ditentukan.

Pengecualian

methodadalah null.

Jumlah elemen di tidak sama dengan jumlah parameter untuk metode yang diwakili arguments oleh method.

-atau-

Satu atau beberapa elemen arguments tidak dapat ditetapkan ke parameter yang sesuai untuk metode yang diwakili oleh method.

Keterangan

Jika arguments tidak null, itu harus memiliki jumlah elemen yang sama dengan jumlah parameter untuk metode yang diwakili oleh method. Setiap elemen di arguments tidak boleh null dan harus dapat ditetapkan ke parameter yang sesuai dari method, mungkin setelah mengutip.

Catatan

Elemen akan dikutip hanya jika parameter metode yang sesuai berjenis Expression. Mengutip berarti elemen dibungkus dalam simpul Quote . Simpul yang dihasilkan adalah properti UnaryExpression yang Operand merupakan elemen dari arguments.

Properti Arguments dari yang dihasilkan MethodCallExpression kosong jika arguments adalah null. Jika tidak, ini berisi elemen yang sama dengan arguments, beberapa di antaranya dapat dikutip.

Properti Type dari yang dihasilkan MethodCallExpression sama dengan jenis pengembalian metode yang diwakili oleh method. Properti Object adalah null.

Berlaku untuk

Call(MethodInfo, Expression)

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke static metode (Shared dalam Visual Basic) yang mengambil satu argumen.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression) As MethodCallExpression

Parameter

method
MethodInfo

A MethodInfo untuk mengatur properti yang Method sama dengan.

arg0
Expression

Expression yang mewakili argumen pertama.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Object properti dan Method diatur ke nilai yang ditentukan.

Pengecualian

method adalah null.

Contoh

Contoh berikut menunjukkan cara membuat ekspresi yang memanggil static metode (Shared dalam Visual Basic) yang mengambil satu argumen.

// Add the following directive to your file:
// using System.Linq.Expressions;

public class SampleClass
{
    public static int Increment(int arg1)
    {
        return arg1 + 1;
    }
}

static public void TestCall()
{

    //This expression represents a call to an instance method with one argument.
    Expression callExpr = Expression.Call(
                            typeof(SampleClass).GetMethod("Increment"),
                            Expression.Constant(2)
                        );

    // Print out the expression.
    Console.WriteLine(callExpr.ToString());

    // The following statement first creates an expression tree,
    // then compiles it, and then executes it.
    Console.WriteLine(Expression.Lambda<Func<int>>(callExpr).Compile()());

    // This code example produces the following output:
    //
    // Increment(2)
    // 3
}
' Add the following directive to your file:
' Imports System.Linq.Expressions  

Public Class SampleClass
    Shared Function Increment(ByVal arg1 As Integer) As Integer
        Return arg1 + 1
    End Function
End Class
Shared Sub TestCall()
    'This expression represents a call to an instance method with one argument.
    Dim callExpr As Expression = Expression.Call(
        GetType(SampleClass).GetMethod("Increment"),
        Expression.Constant(2))

    ' Print the expression.
    Console.WriteLine(callExpr.ToString())

    ' The following statement first creates an expression tree,
    ' then compiles it, and then executes it.
    Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(callExpr).Compile()())
End Sub

' This code example produces the following output:
'
' Increment(2)
' 3

Berlaku untuk

Call(MethodInfo, IEnumerable<Expression>)

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke metode statis (Dibagikan dalam Visual Basic).

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> arguments);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression>? arguments);
static member Call : System.Reflection.MethodInfo * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arguments As IEnumerable(Of Expression)) As MethodCallExpression

Parameter

method
MethodInfo

MethodInfo yang mewakili metode target.

arguments
IEnumerable<Expression>

Kumpulan Expression yang mewakili argumen panggilan.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Object properti dan Method diatur ke nilai yang ditentukan.

Berlaku untuk

Call(Expression, MethodInfo)

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke metode yang tidak mengambil argumen.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Linq::Expressions::Expression ^ instance, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression instance, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.MethodCallExpression Call (System.Linq.Expressions.Expression? instance, System.Reflection.MethodInfo method);
static member Call : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (instance As Expression, method As MethodInfo) As MethodCallExpression

Parameter

instance
Expression

Expression Yang menentukan instans untuk panggilan metode instans (lulus null untuk static metode (Shared dalam Visual Basic).

method
MethodInfo

A MethodInfo untuk mengatur properti yang Method sama dengan.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Object properti dan Method diatur ke nilai yang ditentukan.

Pengecualian

methodadalah null.

-atau-

instance adalah null dan method mewakili metode instans.

instance. Jenis tidak dapat ditetapkan ke jenis deklarasi metode yang diwakili oleh method.

Contoh

Contoh kode berikut menunjukkan cara membuat ekspresi yang memanggil metode tanpa argumen.

// Add the following directive to your file:
// using System.Linq.Expressions;

// This expression represents a call to an instance method without arguments.
Expression callExpr = Expression.Call(
    Expression.Constant("sample string"), typeof(String).GetMethod("ToUpper", new Type[] { }));

// Print out the expression.
Console.WriteLine(callExpr.ToString());

// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<String>>(callExpr).Compile()());

// This code example produces the following output:
//
// "sample string".ToUpper
// SAMPLE STRING
' Add the following directive to your file:
' Imports System.Linq.Expressions   

' This expression represents a call to an instance method without arguments.
Dim callExpr As Expression = Expression.Call(
    Expression.Constant("sample string"), GetType(String).GetMethod("ToUpper", New Type() {}))

' Print the expression.
Console.WriteLine(callExpr.ToString())

' The following statement first creates an expression tree,
' then compiles it, and then executes it.  
Console.WriteLine(Expression.Lambda(Of Func(Of String))(callExpr).Compile()())

' This code example produces the following output:
'
' "sample string".ToUpper
' SAMPLE STRING

Keterangan

Untuk mewakili panggilan ke static metode (Shared dalam Visual Basic), teruskan null untuk instance parameter saat Anda memanggil metode ini.

Jika method mewakili metode instans, Type properti instance harus dapat ditetapkan ke jenis deklarasi metode yang diwakili oleh method.

Properti Arguments dari yang dihasilkan MethodCallExpression kosong. Properti Type sama dengan jenis pengembalian metode yang diwakili oleh method.

Berlaku untuk

Call(MethodInfo, Expression, Expression)

Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs
Sumber:
MethodCallExpression.cs

MethodCallExpression Membuat yang mewakili panggilan ke metode statis yang mengambil dua argumen.

public:
 static System::Linq::Expressions::MethodCallExpression ^ Call(System::Reflection::MethodInfo ^ method, System::Linq::Expressions::Expression ^ arg0, System::Linq::Expressions::Expression ^ arg1);
public static System.Linq.Expressions.MethodCallExpression Call (System.Reflection.MethodInfo method, System.Linq.Expressions.Expression arg0, System.Linq.Expressions.Expression arg1);
static member Call : System.Reflection.MethodInfo * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.MethodCallExpression
Public Shared Function Call (method As MethodInfo, arg0 As Expression, arg1 As Expression) As MethodCallExpression

Parameter

method
MethodInfo

A MethodInfo untuk mengatur properti yang Method sama dengan.

arg0
Expression

Expression yang mewakili argumen pertama.

arg1
Expression

Expression yang mewakili argumen kedua.

Mengembalikan

MethodCallExpression yang memiliki NodeType properti yang sama dengan Call dan Object properti dan Method diatur ke nilai yang ditentukan.

Pengecualian

method adalah null.

Berlaku untuk