Какое значение нужно установить в System.Collection.Specialized.StringCollection Properties.Settings.Default в свойствах проекта?
У меня есть listbox с именем elapsedtimeitem, в нем должны храниться все результаты (время) прохождения пользователем игры. Мне также нужно убедиться, что при перезапуске приложения эти результаты (listbox) не стираются. То есть все элементы Listbox останутся. Для этого я хочу использовать Properties.Settings.Default.History. Я указал тип для этого свойства system collection specialized string collection. Я хочу, чтобы, когда я получу новый пользовательский результат (строку), он был записан в Properties.Settings.Default.History. И из Properties.Settings.Default.History записывать значения в elapsedtimeitem. Я создал следующий код:
Properties.Settings.Default.History.Add(elapsedtimeitem);
Properties.Settings.Default.Save();
Но я получил ошибку. Чтобы быть уверенным, что это не из-за переменной, я изменил код для теста на:
Properties.Settings.Default.History.Add("00:30");
Properties.Settings.Default.Save();
И он выдает ошибку: System.NullReferenceException: "Object reference not set to an instance of an object." Fifteen.Properties.Settings.History.get вернул null.
Как я понимаю, я не могу использовать .Add, так как Properties.Settings.Default.History не задано значение. Но какое значение я должен ввести?
Он не принимает ни одну строку в качестве параметра, он также не принимает массив. Очевидно, я делаю что-то не так, но я не понимаю что.
Ответы (1 шт):
Просто инициализируй StringCollection
если оно null
:
Properties.Settings.Default.History ??= new StringCollection();
Properties.Settings.Default.History.Add("00:30");
Массив StringCollection
серриализуется в:
<ArrayOfString
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>00:30</string>
</ArrayOfString>