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

 

Data di pubblicazione: novembre 2016

Crea un oggetto SwitchCase da usare in un oggetto SwitchExpression.

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

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

Parametri

body
Type: System.Linq.Expressions.Expression

Corpo del case.

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

Valori di test del case.

Valore restituito

Type: System.Linq.Expressions.SwitchCase

Oggetto SwitchCase 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.

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: