некоторые из моих коллег требуют избегать конструктора без параметров и полностью инициализировать его. Потому что они говорят мне, что инициализация строкового свойства по умолчанию, например, быстро скрывает возможность выяснить источник ошибки.
Но стандартная инициализация объектов заранее предотвращает возникновение исключения NullReferenceException. И разве модульные тесты не предотвращают эти «трудно найти» ошибки?
Итак, как лучше всего это сделать на С#?
Что, если бы у меня был класс с 10 свойствами? Должны ли свойства также инициализироваться с помощью параметров конструктора, если я хочу избежать конструктора без параметров? Не слишком ли многословно?
Например, у меня есть этот класс, поэтому люди сказали мне, что я не должен выполнять инициализацию по умолчанию следующим образом:
public class UserForCreationDto
{
public UserForCreationDto()
{
Username = "";
Email = "";
}
[Required]
[MaxLength(100)]
public string Username { get; set; }
[Required]
[MaxLength(100)]
public string Email { get; set; }
}
public string Username { get; set; } = string.Empty;
- person Vidmantas Blazevicius   schedule 18.02.2020""
? Похоже, у вас есть случай, когда код может случайно получить доступ к свойствам до того, как они будут должным образом инициализированы. Если это произойдет, конечно, лучше знать об этом (через NRE), чем приложение продолжает функционировать, возможно, неправильно? - person canton7   schedule 18.02.2020null
? - person canton7   schedule 18.02.2020