Так что я не знаю, хороший это или плохой дизайн кода, поэтому я подумал, что лучше спросить.
Я часто создаю методы, которые выполняют обработку данных с использованием классов, и я часто проверяю методы, чтобы убедиться, что я не получаю нулевые ссылки или другие ошибки заранее.
Для очень простого примера:
// fields and properties
private Entity _someEntity;
public Entity SomeEntity => _someEntity;
public void AssignEntity(Entity entity){
_someEntity = entity;
}
public void SetName(string name)
{
if (_someEntity == null) return; //check to avoid null ref
_someEntity.Name = name;
label.SetText(_someEntity.Name);
}
Так что, как вы можете видеть, я проверяю нулевое значение каждый раз. Но должен ли метод не иметь эту проверку?
Например, внешний код должен очищать данные перед использованием, чтобы методы не проверялись, как показано ниже:
if(entity != null) // this makes the null checks redundant in the methods
{
Manager.AssignEntity(entity);
Manager.SetName("Test");
}
Таким образом, если методы «проверяют данные», а затем выполняют их обработку данных, или это должно быть гарантировано перед вызовом метода, и если вам не удалось проверить перед вызовом метода, он должен выдать ошибку (или перехватить ошибка)?