Can't read all this code on my phone even though it looks pretty well structured to me! Good job!
I saw this. Isn't the exception message contradicting the if
clause?
if (value < CLEARED)
throw new ArgumentOutOfRangeException("SudokuTile Value cannot be zero or smaller. Was " + value);
CLEARED
is set to 0, and the if checks for 'less than 0' so the value could be set to 0.
Also, not having run the code, why does the toString()
have four parameters on String.Format
, only using three?
I'll have a closer look thenwhen I'm at a computer, but nice work!