This PR adds support for trigger parameters to CanFire. Example:
const int argument0 = 101;
var sm = new StateMachine<string, string>("StateA");
var valueTrigger = sm.SetTriggerParameters<int>("MyTrigger");
sm.Configure("StateA").PermitIf(valueTrigger, "StateB", i => i > 100);
Console.WriteLine($"CanFire with {valueTrigger.Trigger} " +
$"on state {sm.State} " +
$"with parameter value {argument0} " +
$"returns: {sm.CanFire(valueTrigger, argument0)}.");
// Output:
// CanFire with MyTrigger on state StateA with parameter value 101 returns: True.
This PR does not change the existing behavior of bool CanFire(TTrigger) nor of bool CanFire(TTrigger, out ICollection<string>), but xmldoc remarks have been added to clarify that they may not work as expected when used with parameterized triggers.
To address #550
This PR adds support for trigger parameters to
CanFire
. Example:This PR does not change the existing behavior of
bool CanFire(TTrigger)
nor ofbool CanFire(TTrigger, out ICollection<string>)
, but xmldoc remarks have been added to clarify that they may not work as expected when used with parameterized triggers.