SwitchExpression 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.
Mewakili ekspresi kontrol yang menangani beberapa pilihan dengan meneruskan kontrol ke SwitchCase.
public ref class SwitchExpression sealed : System::Linq::Expressions::Expression
public sealed class SwitchExpression : System.Linq.Expressions.Expression
type SwitchExpression = class
inherit Expression
Public NotInheritable Class SwitchExpression
Inherits Expression
- Warisan
Contoh
Contoh berikut menunjukkan cara membuat ekspresi yang mewakili pernyataan pengalih yang memiliki kasus default dengan menggunakan Switch metode .
// Add the following directive to the file:
// using System.Linq.Expressions;
// An expression that represents the switch value.
ConstantExpression switchValue = Expression.Constant(3);
// This expression represents a switch statement
// that has a default case.
SwitchExpression switchExpr =
Expression.Switch(
switchValue,
Expression.Call(
null,
typeof(Console).GetMethod("WriteLine", new Type[] { typeof(String) }),
Expression.Constant("Default")
),
new SwitchCase[] {
Expression.SwitchCase(
Expression.Call(
null,
typeof(Console).GetMethod("WriteLine", new Type[] { typeof(String) }),
Expression.Constant("First")
),
Expression.Constant(1)
),
Expression.SwitchCase(
Expression.Call(
null,
typeof(Console).GetMethod("WriteLine", new Type[] { typeof(String) }),
Expression.Constant("Second")
),
Expression.Constant(2)
)
}
);
// The following statement first creates an expression tree,
// then compiles it, and then runs it.
Expression.Lambda<Action>(switchExpr).Compile()();
// This code example produces the following output:
//
// Default
' Add the following directive to the file:
' Imports System.Linq.Expressions
' An expression that represents the switch value.
Dim switchValue As ConstantExpression = Expression.Constant(3)
' This expression represents a switch statement
' that has a default case.
Dim switchExpr As SwitchExpression =
Expression.Switch(
switchValue,
Expression.Call(
Nothing,
GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}),
Expression.Constant("Default")
),
New SwitchCase() {
Expression.SwitchCase(
Expression.Call(
Nothing,
GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}),
Expression.Constant("First")
),
Expression.Constant(1)
),
Expression.SwitchCase(
Expression.Call(
Nothing,
GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}),
Expression.Constant("Second")
),
Expression.Constant(2)
)
}
)
' The following statement first creates an expression tree,
' then compiles it, and then runs it.
Expression.Lambda(Of Action)(switchExpr).Compile()()
' This code example produces the following output:
'
' Default
Properti
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) |
Cases |
Mendapatkan kumpulan SwitchCase objek untuk sakelar. |
Comparison |
Mendapatkan metode perbandingan kesetaraan, jika ada. |
DefaultBody |
Mendapatkan tes untuk sakelar. |
NodeType |
Mengembalikan tipe simpul ekspresi ini. Simpul ekstensi harus kembali Extension saat mengambil alih metode ini. |
SwitchValue |
Mendapatkan tes untuk sakelar. |
Type |
Mendapatkan jenis statis ekspresi yang diwakili ini 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<SwitchCase>, 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) |