Entonces, 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, realizo muchas comprobaciones en los métodos para asegurarme de que no obtengo 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 puede ver, estoy buscando nulos cada vez. ¿Pero el método no debería tener esta verificación?
Por ejemplo, si el código externo limpia los datos de antemano para que los métodos no necesiten 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 deben ser "validación de datos" y luego se procesan en los datos, o debe garantizarse antes de llamar al método, y si no lo valida antes de llamar al método, debería arrojar un error (o detectar el error)?