Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Expression.Switch-Methode: (Expression, Expression, SwitchCase[])

.NET Framework (current version)
 

Veröffentlicht: Oktober 2016

Erstellt eine SwitchExpression, die eine switch-Anweisung mit einem Standardfall darstellt.

Namespace:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

public static SwitchExpression Switch(
	Expression switchValue,
	Expression defaultBody,
	params SwitchCase[] cases
)

Parameter

switchValue
Type: System.Linq.Expressions.Expression

Der Wert, der für jeden Fall getestet werden soll.

defaultBody
Type: System.Linq.Expressions.Expression

Das Ergebnis des Schalters, wenn switchValue mit keinem der Fälle übereinstimmt.

cases
Type: System.Linq.Expressions.SwitchCase[]

Der Satz von Fällen für diesen Schalterausdruck.

Alle SwitchCase Objekte in einem SwitchExpression Objekt muss denselben Typ aufweisen, es sei denn, die SwitchExpression hat den Datentyp void.

Jedes SwitchCase Objekt verfügt über einen impliziten break Anweisung, was bedeutet, dass kein implizites Fortfahren von einer Case-Bezeichnung zu einer anderen.

Wenn switchValue stimmt mit keinem der Fälle dargestellte Standardfall defaultBody ausgeführt wird.

Im folgenden Beispiel wird veranschaulicht, wie einen Ausdruck erstellt, der eine Switch-Anweisung darstellt, die einem Standardfall.

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

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 4.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 4.0
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: