Expression.Switch 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 yang SwitchExpression mewakili switch
pernyataan.
Overload
Switch(Type, Expression, Expression, MethodInfo, SwitchCase[]) |
SwitchExpression Membuat yang mewakili |
Switch(Expression, SwitchCase[]) |
SwitchExpression Membuat yang mewakili |
Switch(Expression, Expression, SwitchCase[]) |
SwitchExpression Membuat yang mewakili |
Switch(Expression, Expression, MethodInfo, IEnumerable<SwitchCase>) |
SwitchExpression Membuat yang mewakili |
Switch(Expression, Expression, MethodInfo, SwitchCase[]) |
SwitchExpression Membuat yang mewakili |
Switch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>) |
SwitchExpression Membuat yang mewakili |
Switch(Type, Expression, Expression, MethodInfo, SwitchCase[])
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
SwitchExpression Membuat yang mewakili switch
pernyataan yang memiliki kasus default.
public:
static System::Linq::Expressions::SwitchExpression ^ Switch(Type ^ type, System::Linq::Expressions::Expression ^ switchValue, System::Linq::Expressions::Expression ^ defaultBody, System::Reflection::MethodInfo ^ comparison, ... cli::array <System::Linq::Expressions::SwitchCase ^> ^ cases);
public static System.Linq.Expressions.SwitchExpression Switch (Type type, System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression defaultBody, System.Reflection.MethodInfo comparison, params System.Linq.Expressions.SwitchCase[] cases);
public static System.Linq.Expressions.SwitchExpression Switch (Type? type, System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression? defaultBody, System.Reflection.MethodInfo? comparison, params System.Linq.Expressions.SwitchCase[]? cases);
static member Switch : Type * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.SwitchCase[] -> System.Linq.Expressions.SwitchExpression
Public Shared Function Switch (type As Type, switchValue As Expression, defaultBody As Expression, comparison As MethodInfo, ParamArray cases As SwitchCase()) As SwitchExpression
Parameter
- type
- Type
Jenis hasil sakelar.
- switchValue
- Expression
Nilai yang akan diuji terhadap setiap kasus.
- defaultBody
- Expression
Hasil pengalihan jika switchValue
tidak cocok dengan salah satu kasus.
- comparison
- MethodInfo
Metode perbandingan kesetaraan yang digunakan.
- cases
- SwitchCase[]
Kumpulan kasus untuk ekspresi pengalihan ini.
Mengembalikan
yang dibuat SwitchExpression.
Berlaku untuk
Switch(Expression, SwitchCase[])
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
SwitchExpression Membuat yang mewakili switch
pernyataan tanpa kasus default.
public:
static System::Linq::Expressions::SwitchExpression ^ Switch(System::Linq::Expressions::Expression ^ switchValue, ... cli::array <System::Linq::Expressions::SwitchCase ^> ^ cases);
public static System.Linq.Expressions.SwitchExpression Switch (System.Linq.Expressions.Expression switchValue, params System.Linq.Expressions.SwitchCase[] cases);
public static System.Linq.Expressions.SwitchExpression Switch (System.Linq.Expressions.Expression switchValue, params System.Linq.Expressions.SwitchCase[]? cases);
static member Switch : System.Linq.Expressions.Expression * System.Linq.Expressions.SwitchCase[] -> System.Linq.Expressions.SwitchExpression
Public Shared Function Switch (switchValue As Expression, ParamArray cases As SwitchCase()) As SwitchExpression
Parameter
- switchValue
- Expression
Nilai yang akan diuji terhadap setiap kasus.
- cases
- SwitchCase[]
Kumpulan kasus untuk ekspresi pengalihan ini.
Mengembalikan
yang dibuat SwitchExpression.
Contoh
Contoh berikut menunjukkan cara membuat ekspresi yang mewakili pernyataan pengalih tanpa kasus default.
// Add the following directive to the file:
// using System.Linq.Expressions;
// An expression that represents the switch value.
ConstantExpression switchValue = Expression.Constant(2);
// This expression represents a switch statement
// without a default case.
SwitchExpression switchExpr =
Expression.Switch(
switchValue,
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:
//
// Second
' Add the following directive to the file:
' Imports System.Linq.Expressions
' An expression that represents the switch value.
Dim switchValue As ConstantExpression = Expression.Constant(2)
' This expression represents a switch statement
' without a default case.
Dim switchExpr As SwitchExpression =
Expression.Switch(
switchValue,
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:
'
' Second
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.
Jika switchValue
tidak cocok dengan salah satu kasus, tidak ada pengecualian yang dilemparkan.
Berlaku untuk
Switch(Expression, Expression, SwitchCase[])
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
SwitchExpression Membuat yang mewakili switch
pernyataan yang memiliki kasus default.
public:
static System::Linq::Expressions::SwitchExpression ^ Switch(System::Linq::Expressions::Expression ^ switchValue, System::Linq::Expressions::Expression ^ defaultBody, ... cli::array <System::Linq::Expressions::SwitchCase ^> ^ cases);
public static System.Linq.Expressions.SwitchExpression Switch (System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression defaultBody, params System.Linq.Expressions.SwitchCase[] cases);
public static System.Linq.Expressions.SwitchExpression Switch (System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression? defaultBody, params System.Linq.Expressions.SwitchCase[]? cases);
static member Switch : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Linq.Expressions.SwitchCase[] -> System.Linq.Expressions.SwitchExpression
Public Shared Function Switch (switchValue As Expression, defaultBody As Expression, ParamArray cases As SwitchCase()) As SwitchExpression
Parameter
- switchValue
- Expression
Nilai yang akan diuji terhadap setiap kasus.
- defaultBody
- Expression
Hasil pengalihan jika switchValue
tidak cocok dengan salah satu kasus.
- cases
- SwitchCase[]
Kumpulan kasus untuk ekspresi pengalihan ini.
Mengembalikan
yang dibuat SwitchExpression.
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.
Jika switchValue
tidak cocok dengan salah satu kasus, kasus default yang diwakili oleh defaultBody
dijalankan.
Berlaku untuk
Switch(Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
SwitchExpression Membuat yang mewakili switch
pernyataan yang memiliki kasus default.
public:
static System::Linq::Expressions::SwitchExpression ^ Switch(System::Linq::Expressions::Expression ^ switchValue, System::Linq::Expressions::Expression ^ defaultBody, System::Reflection::MethodInfo ^ comparison, System::Collections::Generic::IEnumerable<System::Linq::Expressions::SwitchCase ^> ^ cases);
public static System.Linq.Expressions.SwitchExpression Switch (System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression defaultBody, System.Reflection.MethodInfo comparison, System.Collections.Generic.IEnumerable<System.Linq.Expressions.SwitchCase> cases);
public static System.Linq.Expressions.SwitchExpression Switch (System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression? defaultBody, System.Reflection.MethodInfo? comparison, System.Collections.Generic.IEnumerable<System.Linq.Expressions.SwitchCase>? cases);
static member Switch : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo * seq<System.Linq.Expressions.SwitchCase> -> System.Linq.Expressions.SwitchExpression
Public Shared Function Switch (switchValue As Expression, defaultBody As Expression, comparison As MethodInfo, cases As IEnumerable(Of SwitchCase)) As SwitchExpression
Parameter
- switchValue
- Expression
Nilai yang akan diuji terhadap setiap kasus.
- defaultBody
- Expression
Hasil pengalihan jika switchValue
tidak cocok dengan salah satu kasus.
- comparison
- MethodInfo
Metode perbandingan kesetaraan yang digunakan.
- cases
- IEnumerable<SwitchCase>
Kumpulan kasus untuk ekspresi pengalihan ini.
Mengembalikan
yang dibuat SwitchExpression.
Berlaku untuk
Switch(Expression, Expression, MethodInfo, SwitchCase[])
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
SwitchExpression Membuat yang mewakili switch
pernyataan yang memiliki kasus default.
public:
static System::Linq::Expressions::SwitchExpression ^ Switch(System::Linq::Expressions::Expression ^ switchValue, System::Linq::Expressions::Expression ^ defaultBody, System::Reflection::MethodInfo ^ comparison, ... cli::array <System::Linq::Expressions::SwitchCase ^> ^ cases);
public static System.Linq.Expressions.SwitchExpression Switch (System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression defaultBody, System.Reflection.MethodInfo comparison, params System.Linq.Expressions.SwitchCase[] cases);
public static System.Linq.Expressions.SwitchExpression Switch (System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression? defaultBody, System.Reflection.MethodInfo? comparison, params System.Linq.Expressions.SwitchCase[]? cases);
static member Switch : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo * System.Linq.Expressions.SwitchCase[] -> System.Linq.Expressions.SwitchExpression
Public Shared Function Switch (switchValue As Expression, defaultBody As Expression, comparison As MethodInfo, ParamArray cases As SwitchCase()) As SwitchExpression
Parameter
- switchValue
- Expression
Nilai yang akan diuji terhadap setiap kasus.
- defaultBody
- Expression
Hasil pengalihan jika switchValue
tidak cocok dengan salah satu kasus.
- comparison
- MethodInfo
Metode perbandingan kesetaraan yang digunakan.
- cases
- SwitchCase[]
Kumpulan kasus untuk ekspresi pengalihan ini.
Mengembalikan
yang dibuat SwitchExpression.
Berlaku untuk
Switch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
- Sumber:
- SwitchExpression.cs
SwitchExpression Membuat yang mewakili switch
pernyataan yang memiliki kasus default.
public:
static System::Linq::Expressions::SwitchExpression ^ Switch(Type ^ type, System::Linq::Expressions::Expression ^ switchValue, System::Linq::Expressions::Expression ^ defaultBody, System::Reflection::MethodInfo ^ comparison, System::Collections::Generic::IEnumerable<System::Linq::Expressions::SwitchCase ^> ^ cases);
public static System.Linq.Expressions.SwitchExpression Switch (Type type, System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression defaultBody, System.Reflection.MethodInfo comparison, System.Collections.Generic.IEnumerable<System.Linq.Expressions.SwitchCase> cases);
public static System.Linq.Expressions.SwitchExpression Switch (Type? type, System.Linq.Expressions.Expression switchValue, System.Linq.Expressions.Expression? defaultBody, System.Reflection.MethodInfo? comparison, System.Collections.Generic.IEnumerable<System.Linq.Expressions.SwitchCase>? cases);
static member Switch : Type * System.Linq.Expressions.Expression * System.Linq.Expressions.Expression * System.Reflection.MethodInfo * seq<System.Linq.Expressions.SwitchCase> -> System.Linq.Expressions.SwitchExpression
Public Shared Function Switch (type As Type, switchValue As Expression, defaultBody As Expression, comparison As MethodInfo, cases As IEnumerable(Of SwitchCase)) As SwitchExpression
Parameter
- type
- Type
Jenis hasil sakelar.
- switchValue
- Expression
Nilai yang akan diuji terhadap setiap kasus.
- defaultBody
- Expression
Hasil pengalihan jika switchValue
tidak cocok dengan salah satu kasus.
- comparison
- MethodInfo
Metode perbandingan kesetaraan yang digunakan.
- cases
- IEnumerable<SwitchCase>
Kumpulan kasus untuk ekspresi pengalihan ini.
Mengembalikan
yang dibuat SwitchExpression.