// Constructor passes back the result of the argument getter at time of construction. public UndoableCommand_DynamicArg(TContext context, DynamicValueGetter <TArg> argumentGetter) : base(context, argumentGetter.Invoke()) { } //<-- note the explicit invocation of the argument getter (for clarity)