Obvious in retrospect, but took me a minute to catch on to what’s going on here:
public void DoStuff(byte maximum) { for(byte i = 1; i <= maximum; i++) { // whatever } }
This works like a trooper until someone passes in a byte.MaxValue
in a unit test and i
becomes 0 after reaching maximum
and getting incremented again.