Expression.Call Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
MethodCallExpressionMembuat .
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 |
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 |
Call(MethodInfo, Expression) |
MethodCallExpression Membuat yang mewakili panggilan ke |
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 , methodName
yang parameter jenisnya cocok typeArguments
, dan yang jenis parameternya cocok arguments
ditemukan di type
atau jenis dasarnya.
-atau-
Lebih dari satu metode yang namanya , methodName
yang parameter jenisnya cocok , dan yang jenis parameternya cocok arguments
typeArguments
ditemukan 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 , methodName
yang parameter jenisnya cocok typeArguments
, dan yang jenis parameternya cocok arguments
ditemukan di instance
. Jenis atau jenis dasarnya.
-atau-
Lebih dari satu metode yang namanya , methodName
yang 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
method
adalah 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
method
adalah 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
method
adalah 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
method
adalah 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.