SwitchCase Class
Represents one case of a SwitchExpression.
Assembly: System.Core (in System.Core.dll)
| Name | Description | |
|---|---|---|
![]() | Body | Gets the body of this case. |
![]() | TestValues | Gets the values of this case. This case is selected for execution when the SwitchValue matches any of these values. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | ToString() | Returns a String that represents the current Object.(Overrides Object.ToString().) |
![]() | Update(IEnumerable<Expression>, Expression) | 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. |
The following example demonstrates how to create an expression that represents a switch statement without a default case by using the SwitchCase method.
// Add the following directive to the file: // using System.Linq.Expressions; // An expression that represents the switch value. ConstantExpression switchValue = Expression.Constant(2); // This expression represents a switch statement // without a default case. SwitchExpression switchExpr = Expression.Switch( switchValue, 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: // // Second
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 4.0
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

