Class SwitchExpressionSlim
Lightweight representation of a control expression that handles multiple selections by passing control to SwitchCaseSlim.
Inherited Members
Namespace: System.Linq.Expressions
Assembly: Nuqleon.Linq.Expressions.Bonsai.dll
Syntax
public sealed class SwitchExpressionSlim : ExpressionSlim
  Properties
Cases
Gets the collection of SwitchCaseSlim objects for the switch.
Declaration
public ReadOnlyCollection<SwitchCaseSlim> Cases { get; }
  Property Value
| Type | Description | 
|---|---|
| System.Collections.ObjectModel.ReadOnlyCollection<SwitchCaseSlim> | 
Comparison
Gets the equality comparison method, if any.
Declaration
public MethodInfoSlim Comparison { get; }
  Property Value
| Type | Description | 
|---|---|
| MethodInfoSlim | 
DefaultBody
Gets the test for the switch.
Declaration
public ExpressionSlim DefaultBody { get; }
  Property Value
| Type | Description | 
|---|---|
| ExpressionSlim | 
NodeType
Gets the expression node type.
Declaration
public override ExpressionType NodeType { get; }
  Property Value
| Type | Description | 
|---|---|
| System.Linq.Expressions.ExpressionType | 
Overrides
SwitchValue
Gets the test for the switch.
Declaration
public ExpressionSlim SwitchValue { get; }
  Property Value
| Type | Description | 
|---|---|
| ExpressionSlim | 
Type
Gets the static type of the expression that this ExpressionSlim represents.
Declaration
public TypeSlim Type { get; }
  Property Value
| Type | Description | 
|---|---|
| TypeSlim | 
Methods
Accept(ExpressionSlimVisitor)
Accepts the expression tree node in the specified visitor.
Declaration
protected override ExpressionSlim Accept(ExpressionSlimVisitor visitor)
  Parameters
| Type | Name | Description | 
|---|---|---|
| ExpressionSlimVisitor | visitor | Visitor to process the current expression tree node.  | 
      
Returns
| Type | Description | 
|---|---|
| ExpressionSlim | Result of visiting the node.  | 
      
Overrides
Accept<TExpression, TLambdaExpression, TParameterExpression, TNewExpression, TElementInit, TMemberBinding, TMemberAssignment, TMemberListBinding, TMemberMemberBinding, TCatchBlock, TSwitchCase, TLabelTarget>(ExpressionSlimVisitor<TExpression, TLambdaExpression, TParameterExpression, TNewExpression, TElementInit, TMemberBinding, TMemberAssignment, TMemberListBinding, TMemberMemberBinding, TCatchBlock, TSwitchCase, TLabelTarget>)
Accepts the expression tree node in the specified visitor.
Declaration
protected override TExpression Accept<TExpression, TLambdaExpression, TParameterExpression, TNewExpression, TElementInit, TMemberBinding, TMemberAssignment, TMemberListBinding, TMemberMemberBinding, TCatchBlock, TSwitchCase, TLabelTarget>(ExpressionSlimVisitor<TExpression, TLambdaExpression, TParameterExpression, TNewExpression, TElementInit, TMemberBinding, TMemberAssignment, TMemberListBinding, TMemberMemberBinding, TCatchBlock, TSwitchCase, TLabelTarget> visitor)
    where TLambdaExpression : TExpression where TParameterExpression : TExpression where TNewExpression : TExpression where TMemberAssignment : TMemberBinding where TMemberListBinding : TMemberBinding where TMemberMemberBinding : TMemberBinding
  Parameters
| Type | Name | Description | 
|---|---|---|
| ExpressionSlimVisitor<TExpression, TLambdaExpression, TParameterExpression, TNewExpression, TElementInit, TMemberBinding, TMemberAssignment, TMemberListBinding, TMemberMemberBinding, TCatchBlock, TSwitchCase, TLabelTarget> | visitor | Visitor to process the current expression tree node.  | 
      
Returns
| Type | Description | 
|---|---|
| TExpression | Result of visiting the node.  | 
      
Type Parameters
| Name | Description | 
|---|---|
| TExpression | Target type for expressions.  | 
      
| TLambdaExpression | Target type for lambda expressions. This type has to derive from TExpression.  | 
      
| TParameterExpression | Target type for parameter expressions. This type has to derive from TExpression.  | 
      
| TNewExpression | Target type for new expressions. This type has to derive from TExpression.  | 
      
| TElementInit | Target type for element initializers.  | 
      
| TMemberBinding | Target type for member bindings.  | 
      
| TMemberAssignment | Target type for member assignments. This type has to derive from TMemberBinding.  | 
      
| TMemberListBinding | Target type for member list bindings. This type has to derive from TMemberBinding.  | 
      
| TMemberMemberBinding | Target type for member member bindings. This type has to derive from TMemberBinding.  | 
      
| TCatchBlock | Target type for catch blocks.  | 
      
| TSwitchCase | Target type for switch cases.  | 
      
| TLabelTarget | Target type for label targets.  | 
      
Overrides
Update(ExpressionSlim, ReadOnlyCollection<SwitchCaseSlim>, ExpressionSlim)
Creates a new expression that is like this one, but using the supplied children. If all of the children are the same, it will return this expression.
Declaration
public SwitchExpressionSlim Update(ExpressionSlim switchValue, ReadOnlyCollection<SwitchCaseSlim> cases, ExpressionSlim defaultBody)
  Parameters
| Type | Name | Description | 
|---|---|---|
| ExpressionSlim | switchValue | The SwitchValue property of the result.  | 
      
| System.Collections.ObjectModel.ReadOnlyCollection<SwitchCaseSlim> | cases | The Cases property of the result.  | 
      
| ExpressionSlim | defaultBody | The DefaultBody property of the result.  | 
      
Returns
| Type | Description | 
|---|---|
| SwitchExpressionSlim | This expression if no children changed, or an expression with the updated children.  |