Обратите внимание на условие верхней границы цикла:
for (int j=0; j<=10; ++j)
{
a[j].Reveal();
}
массиву a назначено 10 элементов, но этот код показывает, что у вас есть 11 элементов, начиная с 0 до 10, поэтому измените его на простониже 10. И также попробуйте сравнить. Таким образом, правильный код может быть следующим:
public static void Show()
{
for (int j = 0; j < 10; ++j)
{
a[j]?.Reveal();//Or if(a[j] != null)
}
}
, а также внести изменения в строку, которая читает ввод клиента, которая должна выглядеть следующим образом:
val = int.Parse(Console.ReadLine());//If you are sure that the input
действительно конвертируется в int или
int.TryParse(Console.ReadLine() , out int value);
if(value != 0)
{
val = value;
A a = new A(val);
A.Add(a);
}
else
{
throw new Exception();
}