Expression.Switch 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 eine SwitchExpression Anweisung, die eine switch Anweisung darstellt.
Überlädt
| Name | Beschreibung |
|---|---|
| Switch(Type, Expression, Expression, MethodInfo, SwitchCase[]) |
Erstellt eine SwitchExpression , die eine |
| Switch(Expression, SwitchCase[]) |
Erstellt eine SwitchExpression Anweisung, die eine |
| Switch(Expression, Expression, SwitchCase[]) |
Erstellt eine SwitchExpression , die eine |
| Switch(Expression, Expression, MethodInfo, IEnumerable<SwitchCase>) |
Erstellt eine SwitchExpression , die eine |
| Switch(Expression, Expression, MethodInfo, SwitchCase[]) |
Erstellt eine SwitchExpression , die eine |
| Switch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>) |
Erstellt eine SwitchExpression , die eine |
Switch(Type, Expression, Expression, MethodInfo, SwitchCase[])
Erstellt eine SwitchExpression , die eine switch Anweisung darstellt, die einen Standardfall aufweist.
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);
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
Der Ergebnistyp des Schalters.
- switchValue
- Expression
Der Wert, der für jeden Fall getestet werden soll.
- defaultBody
- Expression
Das Ergebnis des Schalters, wenn switchValue er keinem der Fälle entspricht.
- comparison
- MethodInfo
Die zu verwendende Gleichheitsvergleichsmethode.
- cases
- SwitchCase[]
Die Gruppe von Fällen für diesen Switchausdruck.
Gibt zurück
Die erstellte SwitchExpression.
Gilt für:
Switch(Expression, SwitchCase[])
Erstellt eine SwitchExpression Anweisung, die eine switch Anweisung ohne Standardfall darstellt.
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);
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
Der Wert, der für jeden Fall getestet werden soll.
- cases
- SwitchCase[]
Die Gruppe von Fällen für diesen Switchausdruck.
Gibt zurück
Die erstellte SwitchExpression.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie Sie einen Ausdruck erstellen, der eine Switch-Anweisung ohne Standardfall darstellt.
// 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
Hinweise
Alle SwitchCase Objekte in einem SwitchExpression Objekt müssen denselben Typ aufweisen, es sei denn, der Typ hat den SwitchExpression Typ void.
Jedes SwitchCase Objekt verfügt über eine implizite break Anweisung, was bedeutet, dass es keinen impliziten Fall von einer Fallbezeichnung auf eine andere gibt.
Wenn switchValue keiner der Fälle entspricht, wird keine Ausnahme ausgelöst.
Gilt für:
Switch(Expression, Expression, SwitchCase[])
Erstellt eine SwitchExpression , die eine switch Anweisung darstellt, die einen Standardfall aufweist.
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);
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
Der Wert, der für jeden Fall getestet werden soll.
- defaultBody
- Expression
Das Ergebnis des Schalters, wenn switchValue er keinem der Fälle entspricht.
- cases
- SwitchCase[]
Die Gruppe von Fällen für diesen Switchausdruck.
Gibt zurück
Die erstellte SwitchExpression.
Beispiele
Das folgende Beispiel veranschaulicht das Erstellen eines Ausdrucks, der eine Switch-Anweisung darstellt, die einen Standardfall 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 Typ hat den SwitchExpression Typ void.
Jedes SwitchCase Objekt verfügt über eine implizite break Anweisung, was bedeutet, dass es keinen impliziten Fall von einer Fallbezeichnung auf eine andere gibt.
Wenn switchValue keiner der Fälle entspricht, wird der durch die Ausführung dargestellte defaultBody Standardfall ausgeführt.
Gilt für:
Switch(Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)
Erstellt eine SwitchExpression , die eine switch Anweisung darstellt, die einen Standardfall aufweist.
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
Der Wert, der für jeden Fall getestet werden soll.
- defaultBody
- Expression
Das Ergebnis des Schalters, wenn switchValue er keinem der Fälle entspricht.
- comparison
- MethodInfo
Die zu verwendende Gleichheitsvergleichsmethode.
- cases
- IEnumerable<SwitchCase>
Die Gruppe von Fällen für diesen Switchausdruck.
Gibt zurück
Die erstellte SwitchExpression.
Gilt für:
Switch(Expression, Expression, MethodInfo, SwitchCase[])
Erstellt eine SwitchExpression , die eine switch Anweisung darstellt, die einen Standardfall aufweist.
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);
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
Der Wert, der für jeden Fall getestet werden soll.
- defaultBody
- Expression
Das Ergebnis des Schalters, wenn switchValue er keinem der Fälle entspricht.
- comparison
- MethodInfo
Die zu verwendende Gleichheitsvergleichsmethode.
- cases
- SwitchCase[]
Die Gruppe von Fällen für diesen Switchausdruck.
Gibt zurück
Die erstellte SwitchExpression.
Gilt für:
Switch(Type, Expression, Expression, MethodInfo, IEnumerable<SwitchCase>)
Erstellt eine SwitchExpression , die eine switch Anweisung darstellt, die einen Standardfall aufweist.
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
Der Ergebnistyp des Schalters.
- switchValue
- Expression
Der Wert, der für jeden Fall getestet werden soll.
- defaultBody
- Expression
Das Ergebnis des Schalters, wenn switchValue er keinem der Fälle entspricht.
- comparison
- MethodInfo
Die zu verwendende Gleichheitsvergleichsmethode.
- cases
- IEnumerable<SwitchCase>
Die Gruppe von Fällen für diesen Switchausdruck.
Gibt zurück
Die erstellte SwitchExpression.