Así que no sé si este es un diseño de código bueno o malo, así que pensé que sería mejor preguntar.
Con frecuencia creo métodos que procesan datos que involucran clases y a menudo hago muchas comprobaciones en los métodos para asegurarme de que no recibo referencias nulas u otros errores de antemano.
Para un ejemplo muy básico:
// 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);
}
Entonces, como puedes ver, la comprobación de nula es nula cada vez. Pero, ¿no debería el método tener esta comprobación?
Por ejemplo, si el código externo limpia los datos de antemano para que los métodos no tengan que validarse como se muestra a continuación:
if(entity != null) // this makes the null checks redundant in the methods
{
Manager.AssignEntity(entity);
Manager.SetName("Test");
}
En resumen, si los métodos son "validación de datos" y luego procesan los datos, o se deben garantizar antes de llamar al método, y si no se valida antes de llamar al método, se generará un error ( o captura el error)?