У меня есть свойство, которое я хотел бы ввести как int?
в файле Settings.settings. Когда я использую int?
, я получаю отказ во время выполнения:
System.NullReferenceException: ссылка на объект не установлена в экземпляр объекта.
Я могу использовать строковый тип в качестве обходного пути, где проверка на null работает, но я должен разбирать строку и обрабатывать ошибки, когда синтаксический разбор не работает.
Возможность установки значения в null позволяет мне сохранить свойство, задокументированное в файле настроек, и сделать очевидным, что значение не было установлено. Когда он не установлен, я использую запрограммированное значение по умолчанию:
int? configuredNumberOfLimits = Settings.Default.RequiredNumberOfLimits;
if ( configuredNumberOfLimits == null )
{
requiredNumberOfLimits = DEFAULT_REQUIRED_NUMBER_LIMITS;
}