0

Создал в отдельном классе List, чтобы использовать его в формах:

static class Data
{
    public static List<string> ToHide { get; set; }
}

При попытке записи в него значений из формы следующим образом:

CheckBox box = sender as CheckBox;

if (box.Checked)
{
    Data.ToHide.Add(box.Text);
}

возникает исключение "Ссылка на объект не указывает на экземпляр объекта". В чём может быть ошибка?

  • 1
    Необходимо создать объект List ToHide. В конструкторе класса Data добавить ToHide=new List() – Ivan Dec 23 '19 at 09:02
  • 1
    Либо сделать поле класса private static List toHide=new List() ; а дальше свойство: public static List ToHide { get{return toHide;} {set {toHide=value;} } – Ivan Dec 23 '19 at 09:04

1 Answers1

0

Ошибка в том, что вы ссылаетесь на статическое свойство ToHide класса Data, которое не было инициализировано. Т.е. ссылка свойства указывает на null и отсюда ожидаемый NullReferenceException. Как заметили в комментариях к вопросу - самый очевидный вариант инициализировать свойство в конструкторе:

static class Data
{
    public static List<string> ToHide { get; set; }
    public Data()
    {
        ToHide = new List<string>();
    }
}

Но в вашем случае класс Data помечен модификатором statiс и не может иметь конструкторов, поэтому добавьте в строке объявления инициализацию автосвойств:

static class Data
{
    public static List<string> ToHide { get; set; } = new List<string>();
}