/// <summary>
 /// Konstruktor, welcher den Key des aktuellen Status übernimmt.
 /// </summary>
 /// <param name="ruleSet">Regelwerk für die Übergänge zwischen den einzelnen Stati</param>
 /// <param name="currentState">Key des aktuellen Status</param>
 public StateMachine(RuleSet ruleSet, int currentState)
   : this(ruleSet, ruleSet.GetState(currentState))
 {
 }
 /// <summary>
 /// Konstruktor, welcher den aktuellen Status übernimmt.
 /// </summary>
 /// <param name="ruleSet">Regelwerk für die Übergänge zwischen den einzelnen Stati</param>
 /// <param name="currentState">Aktuellen Status</param>
 public StateMachine(RuleSet ruleSet, RuleSet.State currentState)
 {
   this.ruleSet = ruleSet;
   this.currentState = currentState;
 }
 /// <summary>
 /// Konstruktor.
 /// </summary>
 /// <param name="ruleSet">Regelwerk für die Übergänge zwischen den einzelnen Stati</param>
 public StateMachine(RuleSet ruleSet)
   : this(ruleSet, ruleSet.InitialState)
 {
 }