Expression.Switch Metoda

Definicja

Tworzy obiekt SwitchExpression reprezentujący instrukcję switch .

Przeciążenia

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

Tworzy obiekt SwitchExpression reprezentujący instrukcję switch , która ma przypadek domyślny.

Switch(Expression, SwitchCase[])

Tworzy obiekt SwitchExpression , który reprezentuje instrukcję switch bez domyślnego przypadku.

Switch(Expression, Expression, SwitchCase[])

Tworzy obiekt SwitchExpression reprezentujący instrukcję switch , która ma przypadek domyślny.

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

Tworzy obiekt SwitchExpression reprezentujący instrukcję switch , która ma przypadek domyślny.

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

Tworzy obiekt SwitchExpression reprezentujący instrukcję switch , która ma przypadek domyślny.

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

Tworzy obiekt SwitchExpression reprezentujący instrukcję switch , która ma przypadek domyślny.

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

Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs

Tworzy obiekt SwitchExpression reprezentujący instrukcję switch , która ma przypadek domyślny.

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

Parametry

type
Type

Typ wyniku przełącznika.

switchValue
Expression

Wartość do przetestowania pod kątem każdego przypadku.

defaultBody
Expression

Wynik przełącznika, jeśli switchValue nie pasuje do żadnego z przypadków.

comparison
MethodInfo

Metoda porównania równości do użycia.

cases
SwitchCase[]

Zestaw przypadków dla tego wyrażenia przełącznika.

Zwraca

Utworzony element SwitchExpression.

Dotyczy

Switch(Expression, SwitchCase[])

Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs

Tworzy obiekt SwitchExpression , który reprezentuje instrukcję switch bez domyślnego przypadku.

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

Parametry

switchValue
Expression

Wartość do przetestowania pod kątem każdego przypadku.

cases
SwitchCase[]

Zestaw przypadków dla tego wyrażenia przełącznika.

Zwraca

Utworzony element SwitchExpression.

Przykłady

W poniższym przykładzie pokazano, jak utworzyć wyrażenie reprezentujące instrukcję switch bez domyślnego przypadku.

// 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

Uwagi

Wszystkie SwitchCase obiekty w SwitchExpression obiekcie muszą mieć ten sam typ, chyba że SwitchExpression typ ma typ void.

Każdy SwitchCase obiekt ma niejawną break instrukcję, co oznacza, że nie ma niejawnego upadku z jednej etykiety przypadku do innej.

Jeśli switchValue nie pasuje do żadnego z przypadków, nie jest zgłaszany żaden wyjątek.

Dotyczy

Switch(Expression, Expression, SwitchCase[])

Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs

Tworzy obiekt SwitchExpression reprezentujący instrukcję switch , która ma przypadek domyślny.

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

Parametry

switchValue
Expression

Wartość do przetestowania pod kątem każdego przypadku.

defaultBody
Expression

Wynik przełącznika, jeśli switchValue nie pasuje do żadnego z przypadków.

cases
SwitchCase[]

Zestaw przypadków dla tego wyrażenia przełącznika.

Zwraca

Utworzony element SwitchExpression.

Przykłady

W poniższym przykładzie pokazano, jak utworzyć wyrażenie reprezentujące instrukcję switch, która ma przypadek domyślny.

// 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

Uwagi

Wszystkie SwitchCase obiekty w SwitchExpression obiekcie muszą mieć ten sam typ, chyba że SwitchExpression typ ma typ void.

Każdy SwitchCase obiekt ma niejawną break instrukcję, co oznacza, że nie ma niejawnego upadku z jednej etykiety przypadku do innej.

Jeśli switchValue nie pasuje do żadnego z przypadków, zostanie uruchomiony domyślny przypadek reprezentowany przez defaultBody program .

Dotyczy

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

Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs

Tworzy obiekt SwitchExpression reprezentujący instrukcję switch , która ma przypadek domyślny.

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

Parametry

switchValue
Expression

Wartość do przetestowania pod kątem każdego przypadku.

defaultBody
Expression

Wynik przełącznika, jeśli switchValue nie pasuje do żadnego z przypadków.

comparison
MethodInfo

Metoda porównania równości do użycia.

cases
IEnumerable<SwitchCase>

Zestaw przypadków dla tego wyrażenia przełącznika.

Zwraca

Utworzony element SwitchExpression.

Dotyczy

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

Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs

Tworzy obiekt SwitchExpression reprezentujący instrukcję switch , która ma przypadek domyślny.

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

Parametry

switchValue
Expression

Wartość do przetestowania pod kątem każdego przypadku.

defaultBody
Expression

Wynik przełącznika, jeśli switchValue nie pasuje do żadnego z przypadków.

comparison
MethodInfo

Metoda porównania równości do użycia.

cases
SwitchCase[]

Zestaw przypadków dla tego wyrażenia przełącznika.

Zwraca

Utworzony element SwitchExpression.

Dotyczy

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

Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs
Źródło:
SwitchExpression.cs

Tworzy obiekt SwitchExpression reprezentujący instrukcję switch , która ma przypadek domyślny.

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

Parametry

type
Type

Typ wyniku przełącznika.

switchValue
Expression

Wartość do przetestowania pod kątem każdego przypadku.

defaultBody
Expression

Wynik przełącznika, jeśli switchValue nie pasuje do żadnego z przypadków.

comparison
MethodInfo

Metoda porównania równości do użycia.

cases
IEnumerable<SwitchCase>

Zestaw przypadków dla tego wyrażenia przełącznika.

Zwraca

Utworzony element SwitchExpression.

Dotyczy