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.SwitchCase-Methode: (Expression, IEnumerable<Expression>)

.NET Framework (current version)
 

Veröffentlicht: Oktober 2016

Erstellt ein SwitchCase-Objekt, das in einem SwitchExpression-Objekt verwendet werden soll.

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

public static SwitchCase SwitchCase(
	Expression body,
	IEnumerable<Expression> testValues
)

Parameter

body
Type: System.Linq.Expressions.Expression

Der Text des Falls.

testValues
Type: System.Collections.Generic.IEnumerable<Expression>

Die Testwerte des Falls.

Rückgabewert

Type: System.Linq.Expressions.SwitchCase

Der erstellte SwitchCase.

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.

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: