Sdílet prostřednictvím


SwitchExpression Třída

Definice

Představuje výraz ovládacího prvku, který zpracovává více výběrů předáním ovládacího prvku do 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
Dědičnost
SwitchExpression

Příklady

Následující příklad ukazuje, jak vytvořit výraz, který představuje příkaz switch, který má výchozí případ pomocí Switch metody.

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

Vlastnosti

CanReduce

Označuje, že uzel lze zmenšit na jednodušší uzel. Pokud se vrátí hodnota true, lze voláním funkce Reduce() vytvořit redukovanou formu.

(Zděděno od Expression)
Cases

Získá kolekci SwitchCase objektů pro přepínač.

Comparison

Získá metodu porovnání rovnosti, pokud existuje.

DefaultBody

Získá test pro přepínač.

NodeType

Vrátí typ uzlu tohoto výrazu. Uzly rozšíření by se měly vrátit Extension při přepsání této metody.

SwitchValue

Získá test pro přepínač.

Type

Získá statický typ výrazu, který představuje Expression .

Metody

Accept(ExpressionVisitor)

Odesílá do konkrétní metody visit pro tento typ uzlu. Například MethodCallExpression volá VisitMethodCall(MethodCallExpression).

(Zděděno od Expression)
Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
Reduce()

Zmenší tento uzel na jednodušší výraz. Pokud CanReduce vrátí hodnotu true, měl by vrátit platný výraz. Tato metoda může vrátit jiný uzel, který musí být redukován.

(Zděděno od Expression)
ReduceAndCheck()

Zmenší tento uzel na jednodušší výraz. Pokud CanReduce vrátí hodnotu true, měl by vrátit platný výraz. Tato metoda může vrátit jiný uzel, který musí být redukován.

(Zděděno od Expression)
ReduceExtensions()

Zmenšuje výraz na známý typ uzlu (který není uzel rozšíření) nebo pouze vrátí výraz, pokud už je známým typem.

(Zděděno od Expression)
ToString()

Vrátí textovou reprezentaci Expression.

(Zděděno od Expression)
Update(Expression, IEnumerable<SwitchCase>, Expression)

Vytvoří nový výraz, který je podobný tomuto, ale používá zadané podřízené položky. Pokud jsou všechny podřízené položky stejné, vrátí tento výraz.

VisitChildren(ExpressionVisitor)

Zmenší uzel a pak zavolá delegáta návštěvníka na výraz redukce. Metoda vyvolá výjimku, pokud uzel není reduciovatelný.

(Zděděno od Expression)

Platí pro