Expression.SwitchCase Methode

Definitie

Hiermee maakt u een SwitchCase object dat moet worden gebruikt in een SwitchExpression object.

Overloads

Name Description
SwitchCase(Expression, Expression[])

Hiermee maakt u een SwitchCase voor gebruik in een SwitchExpression.

SwitchCase(Expression, IEnumerable<Expression>)

Hiermee maakt u een SwitchCase object dat moet worden gebruikt in een SwitchExpression object.

SwitchCase(Expression, Expression[])

Hiermee maakt u een SwitchCase voor gebruik in een SwitchExpression.

public:
 static System::Linq::Expressions::SwitchCase ^ SwitchCase(System::Linq::Expressions::Expression ^ body, ... cli::array <System::Linq::Expressions::Expression ^> ^ testValues);
public static System.Linq.Expressions.SwitchCase SwitchCase(System.Linq.Expressions.Expression body, params System.Linq.Expressions.Expression[] testValues);
static member SwitchCase : System.Linq.Expressions.Expression * System.Linq.Expressions.Expression[] -> System.Linq.Expressions.SwitchCase
Public Shared Function SwitchCase (body As Expression, ParamArray testValues As Expression()) As SwitchCase

Parameters

body
Expression

Het lichaam van de zaak.

testValues
Expression[]

De testwaarden van de case.

Retouren

De gemaakte SwitchCase.

Van toepassing op

SwitchCase(Expression, IEnumerable<Expression>)

Hiermee maakt u een SwitchCase object dat moet worden gebruikt in een SwitchExpression object.

public:
 static System::Linq::Expressions::SwitchCase ^ SwitchCase(System::Linq::Expressions::Expression ^ body, System::Collections::Generic::IEnumerable<System::Linq::Expressions::Expression ^> ^ testValues);
public static System.Linq.Expressions.SwitchCase SwitchCase(System.Linq.Expressions.Expression body, System.Collections.Generic.IEnumerable<System.Linq.Expressions.Expression> testValues);
static member SwitchCase : System.Linq.Expressions.Expression * seq<System.Linq.Expressions.Expression> -> System.Linq.Expressions.SwitchCase
Public Shared Function SwitchCase (body As Expression, testValues As IEnumerable(Of Expression)) As SwitchCase

Parameters

body
Expression

Het lichaam van de zaak.

testValues
IEnumerable<Expression>

De testwaarden van de case.

Retouren

De gemaakte SwitchCase.

Voorbeelden

In het volgende voorbeeld ziet u hoe u een expressie maakt die een switch-instructie vertegenwoordigt met een standaardcase.

// 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
' Add the following directive to the file:
' Imports System.Linq.Expressions

' An expression that represents the switch value.
Dim switchValue As ConstantExpression = Expression.Constant(3)

' This expression represents a switch statement 
' that has a default case.
Dim switchExpr As SwitchExpression =
Expression.Switch(
    switchValue,
    Expression.Call(
                Nothing,
                GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}),
                Expression.Constant("Default")
            ),
    New SwitchCase() {
        Expression.SwitchCase(
            Expression.Call(
                Nothing,
                GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}),
                Expression.Constant("First")
            ),
            Expression.Constant(1)
        ),
        Expression.SwitchCase(
            Expression.Call(
                Nothing,
                GetType(Console).GetMethod("WriteLine", New Type() {GetType(String)}),
                Expression.Constant("Second")
            ),
            Expression.Constant(2)
        )
    }
)

' The following statement first creates an expression tree,
' then compiles it, and then runs it.
Expression.Lambda(Of Action)(switchExpr).Compile()()

' This code example produces the following output:
'
' Default

Opmerkingen

Alle SwitchCase objecten in een SwitchExpression object moeten hetzelfde type hebben, tenzij het SwitchExpression type voidheeft.

Elk SwitchCase object heeft een impliciete break instructie, wat betekent dat er geen impliciete val doorloopt van het ene caselabel naar het andere.

Van toepassing op