Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Expression.Switch (Expression, Expression, SwitchCase[])

 

Data di pubblicazione: ottobre 2016

Crea SwitchExpression che rappresenta un'istruzione switch con un caso predefinito.

Spazio dei nomi:   System.Linq.Expressions
Assembly:  System.Core (in System.Core.dll)

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

Parametri

switchValue
Type: System.Linq.Expressions.Expression

Valore da testare a fronte di ogni case.

defaultBody
Type: System.Linq.Expressions.Expression

Risultato dell'opzione se switchValue non corrisponde ad alcun caso.

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

Set di case per questa espressione switch.

Valore restituito

Type: System.Linq.Expressions.SwitchExpression

Oggetto SwitchExpression creato.

Tutti SwitchCase gli oggetti in un SwitchExpression oggetto deve avere lo stesso tipo, a meno che il SwitchExpression è di tipo void.

Ogni SwitchCase oggetto è implicita break istruzione, che significa che non esiste nessun passaggio implicito da un'etichetta case a un altro.

Se switchValue non corrisponde ad alcuno dei casi, nel caso predefinito rappresentato da defaultBody viene eseguito.

Nell'esempio seguente viene illustrato come creare un'espressione che rappresenta un'istruzione (opzione) che dispone di un caso predefinito.

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

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 4.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 4.0
Windows Phone Silverlight
Disponibile da 8.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: