LambdaExpression Kelas
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.
Menjelaskan ekspresi lambda. Ini menangkap blok kode yang mirip dengan isi metode .NET.
public ref class LambdaExpression abstract : System::Linq::Expressions::Expression
public ref class LambdaExpression : System::Linq::Expressions::Expression
public abstract class LambdaExpression : System.Linq.Expressions.Expression
public class LambdaExpression : System.Linq.Expressions.Expression
type LambdaExpression = class
inherit Expression
Public MustInherit Class LambdaExpression
Inherits Expression
Public Class LambdaExpression
Inherits Expression
- Warisan
- Turunan
Contoh
Contoh berikut menunjukkan cara membuat ekspresi yang mewakili ekspresi lambda yang menambahkan 1 ke argumen yang diteruskan dengan menggunakan Lambda metode .
// Add the following directive to your file:
// using System.Linq.Expressions;
// A parameter for the lambda expression.
ParameterExpression paramExpr = Expression.Parameter(typeof(int), "arg");
// This expression represents a lambda expression
// that adds 1 to the parameter value.
LambdaExpression lambdaExpr = Expression.Lambda(
Expression.Add(
paramExpr,
Expression.Constant(1)
),
new List<ParameterExpression>() { paramExpr }
);
// Print out the expression.
Console.WriteLine(lambdaExpr);
// Compile and run the lamda expression.
// The value of the parameter is 1.
Console.WriteLine(lambdaExpr.Compile().DynamicInvoke(1));
// This code example produces the following output:
//
// arg => (arg +1)
// 2
' Add the following directive to your file:
' Imports System.Linq.Expressions
' A parameter for the lambda expression.
Dim paramExpr As ParameterExpression = Expression.Parameter(GetType(Integer), "arg")
' This expression represents a lambda expression
' that adds 1 to the parameter value.
Dim lambdaExpr As LambdaExpression = Expression.Lambda(
Expression.Add(
paramExpr,
Expression.Constant(1)
),
New List(Of ParameterExpression)() From {paramExpr}
)
' Print out the expression.
Console.WriteLine(lambdaExpr)
' Compile and run the lamda expression.
' The value of the parameter is 1.
Console.WriteLine(lambdaExpr.Compile().DynamicInvoke(1))
' This code example produces the following output:
'
' arg => (arg +1)
' 2
Keterangan
Jenis mewakili LambdaExpression ekspresi lambda dalam bentuk pohon ekspresi. Jenis Expression<TDelegate> , yang berasal dari LambdaExpression dan menangkap jenis ekspresi lambda secara lebih eksplisit, juga dapat digunakan untuk mewakili ekspresi lambda. Pada runtime, simpul pohon ekspresi yang mewakili ekspresi lambda selalu berjenis Expression<TDelegate>.
Nilai NodeType properti dari adalah LambdaExpressionLambda.
Lambda Gunakan metode pabrik untuk membuat LambdaExpression objek.
Properti
Body |
Mendapatkan isi ekspresi lambda. |
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) |
Name |
Mendapatkan nama ekspresi lambda. |
NodeType |
Mengembalikan jenis node ini Expression. |
NodeType |
Mendapatkan jenis node ini Expression. (Diperoleh dari Expression) |
Parameters |
Mendapatkan parameter ekspresi lambda. |
ReturnType |
Mendapatkan jenis pengembalian ekspresi lambda. |
TailCall |
Mendapatkan nilai yang menunjukkan apakah ekspresi lambda akan dikompilasi dengan pengoptimalan panggilan ekor. |
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) |
Compile() |
Menghasilkan delegasi yang mewakili ekspresi lambda. |
Compile(Boolean) |
Menghasilkan delegasi yang ditafsirkan atau dikompilasi yang mewakili ekspresi lambda. |
Compile(DebugInfoGenerator) |
Menghasilkan delegasi yang mewakili ekspresi lambda. |
CompileToMethod(MethodBuilder) |
Mengkompilasi lambda ke dalam definisi metode. |
CompileToMethod(MethodBuilder, DebugInfoGenerator) |
Mengkompilasi lambda ke dalam definisi metode dan informasi debug kustom. |
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) |
VisitChildren(ExpressionVisitor) |
Mengurangi simpul lalu memanggil delegasi pengunjung pada ekspresi yang dikurangi. Metode ini memberikan pengecualian jika simpul tidak dapat dikurangi. (Diperoleh dari Expression) |