Expression.SwitchCase Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt ein SwitchCase-Objekt, das in einem SwitchExpression-Objekt verwendet werden soll.
Überlädt
SwitchCase(Expression, Expression[]) |
Erstellt einen SwitchCase zur Verwendung in einem SwitchExpression. |
SwitchCase(Expression, IEnumerable<Expression>) |
Erstellt ein SwitchCase-Objekt, das in einem SwitchExpression-Objekt verwendet werden soll. |
SwitchCase(Expression, Expression[])
- Quelle:
- SwitchCase.cs
- Quelle:
- SwitchCase.cs
- Quelle:
- SwitchCase.cs
Erstellt einen SwitchCase zur Verwendung in einem 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
Der Text des Falls.
- testValues
- Expression[]
Die Testwerte des Falls.
Gibt zurück
Der erstellte SwitchCase.
Gilt für:
SwitchCase(Expression, IEnumerable<Expression>)
- Quelle:
- SwitchCase.cs
- Quelle:
- SwitchCase.cs
- Quelle:
- SwitchCase.cs
Erstellt ein SwitchCase-Objekt, das in einem SwitchExpression-Objekt verwendet werden soll.
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
Der Text des Falls.
- testValues
- IEnumerable<Expression>
Die Testwerte des Falls.
Gibt zurück
Der erstellte SwitchCase.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie ein Ausdruck erstellt wird, der eine switch-Anweisung darstellt, die eine Standard-Groß-/Kleinschreibung aufweist.
// 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
Hinweise
Alle SwitchCase Objekte in einem SwitchExpression -Objekt müssen denselben Typ aufweisen, es sei denn, der SwitchExpression hat den Typ void
.
Jedes SwitchCase Objekt verfügt über eine implizite break
Anweisung, was bedeutet, dass es keinen impliziten Fallthrough von einer Fallbezeichnung zu einer anderen gibt.