Bagikan melalui


InvocationExpression Kelas

Definisi

Mewakili ekspresi yang menerapkan delegasi atau ekspresi lambda ke daftar ekspresi argumen.

public ref class InvocationExpression sealed : System::Linq::Expressions::Expression, System::Linq::Expressions::IArgumentProvider
public ref class InvocationExpression sealed : System::Linq::Expressions::Expression
public sealed class InvocationExpression : System.Linq.Expressions.Expression, System.Linq.Expressions.IArgumentProvider
public sealed class InvocationExpression : System.Linq.Expressions.Expression
type InvocationExpression = class
    inherit Expression
    interface IArgumentProvider
type InvocationExpression = class
    inherit Expression
Public NotInheritable Class InvocationExpression
Inherits Expression
Implements IArgumentProvider
Public NotInheritable Class InvocationExpression
Inherits Expression
Warisan
InvocationExpression
Penerapan

Contoh

Contoh berikut membuat InvocationExpression yang mewakili pemanggilan ekspresi lambda dengan argumen yang ditentukan.

System.Linq.Expressions.Expression<Func<int, int, bool>> largeSumTest =
    (num1, num2) => (num1 + num2) > 1000;

// Create an InvocationExpression that represents applying
// the arguments '539' and '281' to the lambda expression 'largeSumTest'.
System.Linq.Expressions.InvocationExpression invocationExpression =
    System.Linq.Expressions.Expression.Invoke(
        largeSumTest,
        System.Linq.Expressions.Expression.Constant(539),
        System.Linq.Expressions.Expression.Constant(281));

Console.WriteLine(invocationExpression.ToString());

// This code produces the following output:
//
// Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)
Dim largeSumTest As System.Linq.Expressions.Expression(Of System.Func(Of Integer, Integer, Boolean)) = _
    Function(num1, num2) (num1 + num2) > 1000

' Create an InvocationExpression that represents applying
' the arguments '539' and '281' to the lambda expression 'largeSumTest'.
Dim invocationExpression As System.Linq.Expressions.InvocationExpression = _
    System.Linq.Expressions.Expression.Invoke( _
        largeSumTest, _
        System.Linq.Expressions.Expression.Constant(539), _
        System.Linq.Expressions.Expression.Constant(281))

Console.WriteLine(invocationExpression.ToString())

' This code produces the following output:
'
' Invoke((num1, num2) => ((num1 + num2) > 1000),539,281)

Keterangan

Invoke Gunakan metode pabrik untuk membuat InvocationExpression.

Dari NodeType adalah InvocationExpressionInvoke.

Properti

Arguments

Mendapatkan argumen tempat delegasi atau ekspresi lambda diterapkan.

CanReduce

Menunjukkan bahwa simpul dapat dikurangi menjadi simpul yang lebih sederhana. Jika ini mengembalikan true, Reduce() dapat dipanggil untuk menghasilkan formulir yang dikurangi.

(Diperoleh dari Expression)
Expression

Mendapatkan delegasi atau ekspresi lambda yang akan diterapkan.

NodeType

Mengembalikan tipe node ekspresi ini. Simpul ekstensi harus kembali Extension saat mengambil alih metode ini.

NodeType

Mendapatkan jenis node ini Expression.

(Diperoleh dari Expression)
Type

Mendapatkan jenis statis ekspresi yang diwakili ini Expression .

Type

Mendapatkan jenis statis ekspresi yang diwakili ini Expression .

(Diperoleh dari Expression)

Metode

Accept(ExpressionVisitor)

Mengirimkan ke metode kunjungan tertentu untuk jenis node ini. Misalnya, MethodCallExpression memanggil VisitMethodCall(MethodCallExpression).

(Diperoleh dari Expression)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
Reduce()

Mengurangi simpul ini menjadi ekspresi yang lebih sederhana. Jika CanReduce mengembalikan true, ini akan mengembalikan ekspresi yang valid. Metode ini dapat mengembalikan simpul lain yang harus dikurangi.

(Diperoleh dari Expression)
ReduceAndCheck()

Mengurangi simpul ini menjadi ekspresi yang lebih sederhana. Jika CanReduce mengembalikan true, ini akan mengembalikan ekspresi yang valid. Metode ini dapat mengembalikan simpul lain yang harus dikurangi.

(Diperoleh dari Expression)
ReduceExtensions()

Mengurangi ekspresi ke jenis simpul yang diketahui (yang bukan simpul Ekstensi) atau hanya mengembalikan ekspresi jika sudah merupakan jenis yang diketahui.

(Diperoleh dari Expression)
ToString()

Mengembalikan representasi tekstual dari Expression.

(Diperoleh dari Expression)
Update(Expression, IEnumerable<Expression>)

Membuat ekspresi baru yang seperti ini, tetapi menggunakan anak-anak yang disediakan. Jika semua anak sama, itu akan mengembalikan ekspresi ini.

VisitChildren(ExpressionVisitor)

Mengurangi simpul lalu memanggil delegasi pengunjung pada ekspresi yang dikurangi. Metode ini memberikan pengecualian jika simpul tidak dapat dikurangi.

(Diperoleh dari Expression)

Implementasi Antarmuka Eksplisit

IArgumentProvider.ArgumentCount

Mengembalikan jumlah argumen ke simpul pohon ekspresi. Anda tidak boleh menggunakan anggota ini. Ini hanya publik karena refaktor perakitan, dan digunakan secara internal untuk pengoptimalan performa.

IArgumentProvider.GetArgument(Int32)

Mengembalikan argumen pada indeks, melemparkan jika indeks berada di luar batas. Anda tidak boleh menggunakan anggota ini. Ini hanya publik karena refaktor perakitan, dan digunakan secara internal untuk pengoptimalan performa.

Berlaku untuk