Expression.SwitchCase 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.
Membuat objek yang SwitchCase akan digunakan dalam SwitchExpression objek.
Overload
SwitchCase(Expression, Expression[]) |
SwitchCase Membuat untuk digunakan dalam SwitchExpression. |
SwitchCase(Expression, IEnumerable<Expression>) |
Membuat objek yang SwitchCase akan digunakan dalam SwitchExpression objek. |
SwitchCase(Expression, Expression[])
- Sumber:
- SwitchCase.cs
- Sumber:
- SwitchCase.cs
- Sumber:
- SwitchCase.cs
SwitchCase Membuat untuk digunakan dalam SwitchExpression.
public:
static System::Linq::Expressions::SwitchCase ^ SwitchCase(System::Linq::Expressions::Expression ^ body, ... cli::array <System::Linq::Expressions::Expression ^> ^ testValues);
public static System.Linq.Expressions.SwitchCase SwitchCase (System.Linq.Expressions.Expression body, params System.Linq.Expressions.Expression[] testValues);
static member SwitchCase : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.SwitchCase
Public Shared Function SwitchCase (body As Expression, ParamArray testValues As Expression()) As SwitchCase
Parameter
- body
- Expression
Isi kopernya.
- testValues
- Expression[]
Nilai pengujian kasus.
Mengembalikan
yang dibuat SwitchCase.
Berlaku untuk
SwitchCase(Expression, IEnumerable<Expression>)
- Sumber:
- SwitchCase.cs
- Sumber:
- SwitchCase.cs
- Sumber:
- SwitchCase.cs
Membuat objek yang SwitchCase akan digunakan dalam SwitchExpression objek.
public:
static System::Linq::Expressions::SwitchCase ^ SwitchCase(System::Linq::Expressions::Expression ^ body, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ testValues);
public static System.Linq.Expressions.SwitchCase SwitchCase (System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> testValues);
static member SwitchCase : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.SwitchCase
Public Shared Function SwitchCase (body As Expression, testValues As IEnumerable(Of Expression)) As SwitchCase
Parameter
- body
- Expression
Isi kopernya.
- testValues
- IEnumerable<Expression>
Nilai pengujian kasus.
Mengembalikan
yang dibuat SwitchCase.
Contoh
Contoh berikut menunjukkan cara membuat ekspresi yang mewakili pernyataan pengalih yang memiliki kasus default.
// 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
Keterangan
Semua SwitchCase objek dalam SwitchExpression objek harus memiliki jenis yang sama, kecuali SwitchExpression memiliki jenis void
.
Setiap SwitchCase objek memiliki pernyataan implisit break
, yang berarti bahwa tidak ada jatuh implisit dari satu label kasus ke label kasus lainnya.