Я знаю, что этот вопрос, возможно, часто задают, но, тем не менее, я не могу решить его, используя решение, которое дают люди. Итак, у меня также есть исключение «System.NullReferenceException:« Ссылка на объект не установлена на экземпляр объекта. »При попытке использовать 2D-массив объекта. Итак, вот не рабочий код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Console_multi_fonctionnelle_basique
{
partial class Program
{
public class SudokuSolver
{
//Initialisation code
public SudokuSolver()
{
GridValue[,] SudokuGrid = new GridValue[9, 9];
SudokuDisplay(SudokuGrid);
Console.ReadKey();
}
//Store values for every slot
class GridValue
{
public bool CanBe1 { get; set; } = false;
public bool CanBe2 { get; set; } = false;
public bool CanBe3 { get; set; } = false;
public bool CanBe4 { get; set; } = false;
public bool CanBe5 { get; set; } = false;
public bool CanBe6 { get; set; } = false;
public bool CanBe7 { get; set; } = false;
public bool CanBe8 { get; set; } = false;
public bool CanBe9 { get; set; } = false;
public bool AlreadySolved { get; set; } = false;
public int Value { get; set; } = 0;
}
//Display the grid
void SudokuDisplay(GridValue[,] Sudoku)
{
Sudoku[1, 1].Value = 1;
Sudoku[1, 2].Value = 2;
Console.WriteLine(Sudoku[0, 0].Value + Sudoku[1,0].Value);
}
//To Do
//Ask the values for every slot
//Verify if the slot can contain a number
//Choose the most appropriated number for the slot
//End the program after user pressing an key
}
}
}
Итак, как вы можете видеть, я хочу использовать 2D-массив класса "GridValue" размером 9x9, чтобы у каждого "слота сетки" была своя собственная переменная для последующего решения судоку. Но программа выглядит так, как будто не понимает, что мой Array содержит объекты "GridValue", поэтому он, похоже, не понимает, что каждое значение Array содержит несколько переменных ... Поэтому мне хотелось бы получить переменную для одного из объектов в Массив без получения исключения.