I've run into this with Unity before on public fields. I've speculated that it's due to how the editor interface integrates with public fields (editor is clearing your intialized value) but I haven't been able to find documentation to back that up. I have, however, been able to work around this by moving the initialization code into the Start
function.
However, you may have to add extra logic if you still want this exposed within the editor.
void Start ()
{
board = board ?? new int[9] {
0, 0, 0,
0, 0, 0,
0, 0, 0
};
}
Alternatively I think if you simply change the variable to private
or protected
that should remove it from the editor and it should also work.