Expression.OrElse 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.
BinaryExpression Membuat yang mewakili operasi kondisional OR yang mengevaluasi operand kedua hanya jika operator pertama mengevaluasi ke false.
Overload
| Nama | Deskripsi |
|---|---|
| OrElse(Expression, Expression) |
BinaryExpression Membuat yang mewakili operasi kondisional |
| OrElse(Expression, Expression, MethodInfo) |
BinaryExpression Membuat yang mewakili operasi kondisional |
OrElse(Expression, Expression)
- Sumber:
- BinaryExpression.cs
- Sumber:
- BinaryExpression.cs
- Sumber:
- BinaryExpression.cs
- Sumber:
- BinaryExpression.cs
- Sumber:
- BinaryExpression.cs
BinaryExpression Membuat yang mewakili operasi kondisional OR yang mengevaluasi operand kedua hanya jika operand pertama mengevaluasi ke false.
public:
static System::Linq::Expressions::BinaryExpression ^ OrElse(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right);
public static System.Linq.Expressions.BinaryExpression OrElse(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right);
static member OrElse : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression -> System.Linq.Expressions.BinaryExpression
Public Shared Function OrElse (left As Expression, right As Expression) As BinaryExpression
Parameter
- left
- Expression
Untuk Expression mengatur properti sama Left dengan.
- right
- Expression
Untuk Expression mengatur properti sama Right dengan.
Mengembalikan
BinaryExpression Yang memiliki NodeType properti sama dengan OrElse dan Left properti dan Right diatur ke nilai yang ditentukan.
Pengecualian
left atau right adalah null.
Operator bitwise OR tidak didefinisikan untuk left. Ketik dan right. Jenis.
-atau-
left. Ketik dan right. Jenis bukan tipe Boolean yang sama.
Contoh
Contoh kode berikut menunjukkan cara membuat ekspresi yang mewakili operasi logis OR yang mengevaluasi operand kedua hanya jika operand pertama mengevaluasi ke false.
// Add the following directive to your file:
// using System.Linq.Expressions;
// This expression perfroms a logical OR operation
// on its two arguments, but if the first argument is true,
// then the second arument is not evaluated.
// Both arguments must be of the boolean type.
Expression orElseExpr = Expression.OrElse(
Expression.Constant(false),
Expression.Constant(true)
);
// Print out the expression.
Console.WriteLine(orElseExpr.ToString());
// The following statement first creates an expression tree,
// then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda<Func<bool>>(orElseExpr).Compile().Invoke());
// This code example produces the following output:
//
// (False OrElse True)
// True
' Add the following directive to your file:
' Imports System.Linq.Expressions
' This expression perfroms a logical OR operation
' on its two arguments, but if the first argument is true,
' the second arument is not evaluated.
' Both arguments must be of the Boolean type.
Dim orElseExpr As Expression = Expression.OrElse(
Expression.Constant(False),
Expression.Constant(True)
)
' Print the expression.
Console.WriteLine(orElseExpr.ToString())
' The following statement first creates an expression tree,
' then compiles it, and then executes it.
Console.WriteLine(Expression.Lambda(Of Func(Of Boolean))(orElseExpr).Compile()())
' This code example produces the following output:
'
' (False OrElse True)
' True
Keterangan
Yang dihasilkan BinaryExpression memiliki properti yang Method diatur ke metode penerapan. Properti Type diatur ke jenis simpul. Jika node diangkat, properti IsLifted dan IsLiftedToNull keduanya true. Jika tidak, mereka adalah false. Properti Conversion adalah null.
Informasi berikut menjelaskan metode penerapan, jenis node, dan apakah node diangkat.
Metode Penerapan
Aturan berikut menentukan metode penerapan untuk operasi:
Type Jika properti dari salah satu
leftataurightmewakili jenis yang ditentukan pengguna yang membebani operator bitwiseOR, yang mewakili metode tersebut MethodInfo adalah metode penerapan.Nota
Operator kondisi
ORtidak dapat kelebihan beban dalam C# atau Visual Basic. Namun, operator bersyarkatORdievaluasi dengan menggunakan operator bitwiseOR. Dengan demikian, kelebihan operator bitwiseORyang ditentukan pengguna dapat menjadi metode penerapan untuk jenis node ini.Jika tidak, jika
left. Ketik danright. Jenisnya adalah jenis Boolean, metode penerapannya adalahnull.
Jenis Node dan Diangkat versus Tidak Diangkat
Jika metode penerapan bukan null:
Jika
left. Type danright. Type dapat ditetapkan ke jenis argumen yang sesuai dari metode yang menerapkan, node tidak diangkat. Jenis simpul adalah jenis pengembalian dari metode penerapan.Jika dua kondisi berikut terpenuhi, simpul diangkat dan tipe simpul adalah tipe nullable yang sesuai dengan tipe pengembalian dari metode yang menerapkannya:
left. Ketik danright. Jenis keduanya adalah jenis nilai yang setidaknya satu dapat diubah ke null, dan jenis yang tidak dapat diubah ke null yang sesuai sama dengan jenis argumen yang sesuai dari metode penerapan.Jenis pengembalian metode yang diimplementasikan adalah jenis nilai yang tidak dapat bernilai null.
Jika metode penerapan adalah null:
left. Ketik danright. Jenisnya adalah jenis Boolean yang sama.Jika
left. Ketik danright. Jenis tidak dapat diubah ke null, simpul tidak diangkat. Jenis simpul adalah jenis hasil operator bersyariahORyang telah ditentukan sebelumnya.Jika
left. Ketik danright. Jenis nullable, node diangkat. Jenis simpul adalah jenis nullable yang sesuai dengan jenis hasil operator bersyariahORyang telah ditentukan sebelumnya.
Berlaku untuk
OrElse(Expression, Expression, MethodInfo)
- Sumber:
- BinaryExpression.cs
- Sumber:
- BinaryExpression.cs
- Sumber:
- BinaryExpression.cs
- Sumber:
- BinaryExpression.cs
- Sumber:
- BinaryExpression.cs
BinaryExpression Membuat yang mewakili operasi kondisional OR yang mengevaluasi operand kedua hanya jika operand pertama mengevaluasi ke false.
public:
static System::Linq::Expressions::BinaryExpression ^ OrElse(System::Linq::Expressions::Expression ^ left, System::Linq::Expressions::Expression ^ right, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.BinaryExpression OrElse(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.BinaryExpression OrElse(System.Linq.Expressions.Expression left, System.Linq.Expressions.Expression right, System.Reflection.MethodInfo? method);
static member OrElse : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.BinaryExpression
Public Shared Function OrElse (left As Expression, right As Expression, method As MethodInfo) As BinaryExpression
Parameter
- left
- Expression
Untuk Expression mengatur properti sama Left dengan.
- right
- Expression
Untuk Expression mengatur properti sama Right dengan.
- method
- MethodInfo
A MethodInfo untuk mengatur Method properti sama dengan.
Mengembalikan
BinaryExpression yang memiliki NodeType properti yang sama dengan OrElse dan Leftproperti , , Rightdan Method diatur ke nilai yang ditentukan.
Pengecualian
left atau right adalah null.
method bukan null dan metode yang diwakilinya mengembalikan void, bukan static (Shared di Visual Basic), atau tidak mengambil dua argumen persis.
method adalah null dan operator bitwise OR tidak didefinisikan untuk left. Ketik dan right. Jenis.
-atau-
method adalah null dan left. Ketik dan right. Jenis bukan tipe Boolean yang sama.
Keterangan
Yang dihasilkan BinaryExpression memiliki properti yang Method diatur ke metode penerapan. Properti Type diatur ke jenis simpul. Jika node diangkat, properti IsLifted dan IsLiftedToNull keduanya true. Jika tidak, mereka adalah false. Properti Conversion adalah null.
Informasi berikut menjelaskan metode penerapan, jenis node, dan apakah node diangkat.
Metode Penerapan
Aturan berikut menentukan metode penerapan untuk operasi:
Jika
methodtidaknulldan mewakili metode non-void,static(Shareddalam Visual Basic) yang mengambil dua argumen, itu adalah metode penerapan untuk simpul.Jika tidak, jika Type properti dari salah satu
leftataurightmewakili jenis yang ditentukan pengguna yang membebani operator bitwiseOR, yang mewakili metode tersebut MethodInfo adalah metode penerapan.Nota
Operator kondisi
ORtidak dapat kelebihan beban dalam C# atau Visual Basic. Namun, operator bersyarkatORdievaluasi dengan menggunakan operator bitwiseOR. Dengan demikian, kelebihan operator bitwiseORyang ditentukan pengguna dapat menjadi metode penerapan untuk jenis node ini.Jika tidak, jika
left. Ketik danright. Jenisnya adalah jenis Boolean, metode penerapannya adalahnull.
Jenis Node dan Diangkat versus Tidak Diangkat
Jika metode penerapan bukan null:
Jika
left. Type danright. Type dapat ditetapkan ke jenis argumen yang sesuai dari metode yang menerapkan, node tidak diangkat. Jenis simpul adalah jenis pengembalian dari metode penerapan.Jika dua kondisi berikut terpenuhi, simpul diangkat dan tipe simpul adalah tipe nullable yang sesuai dengan tipe pengembalian dari metode yang menerapkannya:
left. Ketik danright. Jenis keduanya adalah jenis nilai yang setidaknya satu dapat diubah ke null, dan jenis yang tidak dapat diubah ke null yang sesuai sama dengan jenis argumen yang sesuai dari metode penerapan.Jenis pengembalian metode yang diimplementasikan adalah jenis nilai yang tidak dapat bernilai null.
Jika metode penerapan adalah null:
left. Ketik danright. Jenisnya adalah jenis Boolean yang sama.Jika
left. Ketik danright. Jenis tidak dapat diubah ke null, simpul tidak diangkat. Jenis simpul adalah jenis hasil operator bersyariahORyang telah ditentukan sebelumnya.Jika
left. Ketik danright. Jenis nullable, node diangkat. Jenis simpul adalah jenis nullable yang sesuai dengan jenis hasil operator bersyariahORyang telah ditentukan sebelumnya.