(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

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

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
Typ: System.Linq.Expressions.Expression
Der Wert, der für jeden Fall getestet werden soll.
defaultBody
Typ: System.Linq.Expressions.Expression
Das Ergebnis des Schalters, wenn switchValue mit keinem der Fälle übereinstimmt.
cases
Typ: System.Linq.Expressions.SwitchCase[]
Der Satz von Fällen für diesen Schalterausdruck.

Alle SwitchCase-Objekte in einem SwitchExpression-Objekt müssen den gleichen Typ haben, außer wenn der SwitchExpression den Typ void hat.

Jedes SwitchCase-Objekt verfügt über eine implizite break-Anweisung, was bedeutet, dass kein implizites Fortfahren von einer case-Bezeichnung zur nächsten möglich ist.

Wenn switchValue keinem der Fälle entspricht, wird der von defaultBody dargestellte Standardfall ausgeführt.

Im folgenden Beispiel wird veranschaulicht, wie ein Ausdruck erstellt wird, der eine switch-Anweisung darstellt, die über einen Standardfall verfügt.


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


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4

.NET Framework Client Profile

Unterstützt in: 4

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft