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(Of 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: ' Imports System.Linq.Expressions ' An expression that represents the switch value. Dim switchValue As ConstantExpression = Expression.Constant(2) ' This expression represents a switch statement ' without a default case. Dim switchExpr As SwitchExpression = Expression.Switch( switchValue, 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: ' ' 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.

