SwitchExpression Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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) |