Non-Enumeration Example

Source code

This example shows the use of a non-enumerable type for the generic STATE type of a transition system.

StateMachine<double> stateMachine = new(double.NaN);

The type double has 6 public static fields: NegativeInfinity, MinValue, Epsilon, MaxValue, PositiveInfinity, and NaN. They are used as the states.

Note that the default double value is not usable, because this is 0, not corresponding to any of the double public static fields. Therefore, the call to the constructor specifies NaN as an initial state.

State transition graph:

−∞ ⇔ MinValue ⇔ Epsilon ⇔ MaxValue ⇔ +∞;
MinValue ⇔ MaxValue
NaN ⇒ to any other state, but all the transitions to NaN are invalid

This documentation is generated from the extended Markdown documentation using Extensible Markdown for Visual Studio Code.