Bagikan melalui


Expression.Switch Metode

Definisi

Membuat yang SwitchExpression mewakili switch pernyataan.

Overload

Switch(Type, Expression, Expression, MethodInfo, SwitchCase[])

SwitchExpression Membuat yang mewakili switch pernyataan yang memiliki kasus default.

Switch(Expression, SwitchCase[])

SwitchExpression Membuat yang mewakili switch pernyataan tanpa kasus default.

Switch(Expression, Expression, SwitchCase[])

SwitchExpression Membuat yang mewakili switch pernyataan yang memiliki kasus default.

Switch(Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)

SwitchExpression Membuat yang mewakili switch pernyataan yang memiliki kasus default.

Switch(Expression, Expression, MethodInfo, SwitchCase[])

SwitchExpression Membuat yang mewakili switch pernyataan yang memiliki kasus default.

Switch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)

SwitchExpression Membuat yang mewakili switch pernyataan yang memiliki kasus default.

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.

Berlaku untuk