Где ошибка в коде C#?
Зачастую дебаггер показывает на следующую строку (инструкцию) после проблемной, как в этом случае.
У вас, чтобы всё работало, x и y должны быть равны числу 0, 1 или 2. А Console.Read читает символ, а не число. Т.е. введя 0, вы получите символ '0', что соответствует числу 48. 
Вам нужно обработать ввод, отсечь не правильные символы и преобразовать символы в числа.
const int FieldWidth = 3;
    const int FieldHeight = 3;

    int[,] array = new int[FieldWidth, FieldHeight];

    //Ввод нуля и последующая проверка на выигрыш.
    public void Enter0()
    {
      int x, y;

      while (!int.TryParse(Console.Read(), out x) || x < 0 || x >= FieldWidth) continue; // Здесь можно обработать неверный ввод.
      while (!int.TryParse(Console.Read(), out y) || y < 0 || y >= FieldHeight) continue; // Здесь можно обработать неверный ввод.

      array[x, y] = 0;
      draw_array();
      if (Check(x, y))
        Player.Win();
    }
И везде в коде тройки замените на константы.