Expression.SwitchCase Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří objekt, který SwitchCase se má použít v objektu SwitchExpression .
Přetížení
SwitchCase(Expression, Expression[]) |
Vytvoří pro SwitchCase použití v SwitchExpression. |
SwitchCase(Expression, IEnumerable<Expression>) |
Vytvoří objekt, který SwitchCase se má použít v objektu SwitchExpression . |
SwitchCase(Expression, Expression[])
- Zdroj:
- SwitchCase.cs
- Zdroj:
- SwitchCase.cs
- Zdroj:
- SwitchCase.cs
Vytvoří pro SwitchCase použití v 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
Parametry
- body
- Expression
Tělo případu.
- testValues
- Expression[]
Testovací hodnoty případu.
Návraty
Vytvořený SwitchCaseobjekt
Platí pro
SwitchCase(Expression, IEnumerable<Expression>)
- Zdroj:
- SwitchCase.cs
- Zdroj:
- SwitchCase.cs
- Zdroj:
- SwitchCase.cs
Vytvoří objekt, který SwitchCase se má použít v objektu SwitchExpression .
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
Parametry
- body
- Expression
Tělo případu.
- testValues
- IEnumerable<Expression>
Testovací hodnoty případu.
Návraty
Vytvořený SwitchCaseobjekt
Příklady
Následující příklad ukazuje, jak vytvořit výraz, který představuje příkaz switch, který má výchozí případ.
// 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
Poznámky
Všechny SwitchCase objekty v objektu SwitchExpression musí mít stejný typ, pokud SwitchExpression objekt nemá typ void
.
Každý SwitchCase objekt má implicitní break
příkaz, což znamená, že neexistuje implicitní pád z jednoho popisku případu do druhého.