SwitchExpression Klas

Definitie

Vertegenwoordigt een besturingselementexpressie die meerdere selecties verwerkt door het besturingselement door te geven aan SwitchCase.

public ref class SwitchExpression sealed : System::Linq::Expressions::Expression
public sealed class SwitchExpression : System.Linq.Expressions.Expression
type SwitchExpression = class
    inherit Expression
Public NotInheritable Class SwitchExpression
Inherits Expression
Overname
SwitchExpression

Voorbeelden

In het volgende voorbeeld ziet u hoe u een expressie maakt die een switch-instructie vertegenwoordigt die een standaardcase heeft met behulp van de Switch methode.

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

Eigenschappen

Name Description
CanReduce

Geeft aan dat het knooppunt kan worden gereduceerd tot een eenvoudiger knooppunt. Als dit waar retourneert, kan Reduce() worden aangeroepen om de gereduceerde vorm te produceren.

(Overgenomen van Expression)
Cases

Hiermee haalt u de verzameling SwitchCase objecten voor de switch op.

Comparison

Hiermee haalt u de gelijkheidsvergelijkingsmethode op, indien van toepassing.

DefaultBody

Hiermee haalt u de test voor de switch op.

NodeType

Retourneert het knooppunttype van deze expressie. Extensieknooppunten moeten worden geretourneerd Extension bij het overschrijven van deze methode.

SwitchValue

Hiermee haalt u de test voor de switch op.

Type

Hiermee haalt u het statische type van de expressie op die deze Expression vertegenwoordigt.

Methoden

Name Description
Accept(ExpressionVisitor)

Verzendt naar de specifieke bezoekmethode voor dit knooppunttype. Roept bijvoorbeeld MethodCallExpression de VisitMethodCall(MethodCallExpression).

(Overgenomen van Expression)
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
Reduce()

Vermindert dit knooppunt tot een eenvoudigere expressie. Als CanReduce waar retourneert, moet dit een geldige expressie retourneren. Deze methode kan een ander knooppunt retourneren dat zelf moet worden verminderd.

(Overgenomen van Expression)
ReduceAndCheck()

Vermindert dit knooppunt tot een eenvoudigere expressie. Als CanReduce waar retourneert, moet dit een geldige expressie retourneren. Deze methode kan een ander knooppunt retourneren dat zelf moet worden verminderd.

(Overgenomen van Expression)
ReduceExtensions()

Vermindert de expressie tot een bekend knooppunttype (dat geen extensieknooppunt is) of retourneert alleen de expressie als het al een bekend type is.

(Overgenomen van Expression)
ToString()

Retourneert een tekstuele weergave van de Expression.

(Overgenomen van Expression)
Update(Expression, IEnumerable<SwitchCase>, Expression)

Hiermee maakt u een nieuwe expressie die er als volgt uitziet, maar met behulp van de opgegeven onderliggende elementen. Als alle onderliggende items hetzelfde zijn, wordt deze expressie geretourneerd.

VisitChildren(ExpressionVisitor)

Vermindert het knooppunt en roept vervolgens de gedelegeerde van de bezoeker aan op de gereduceerde expressie. De methode genereert een uitzondering als het knooppunt niet kan worden herleid.

(Overgenomen van Expression)

Van toepassing op