Estoy tratando de descubrir las mejores prácticas para el código reutilizable que se depura fácilmente. Me encontré con una práctica común entre los desarrolladores que aún no entiendo del todo.Comprobación de Null en el Constructor
public MyConstructor(Object myObject)
{
if (myObject == null)
throw new ArgumentNullException("myObject is null.");
_myObject = myObject;
}
Parece casi innecesario hacer esta comprobación. Pero creo que es porque no entiendo completamente cuáles son los beneficios de hacer este control. Parece que una excepción de referencia nula sería lanzada de todos modos? Probablemente estoy equivocado, realmente me gustaría escuchar algunas ideas al respecto.
Gracias.
Lo que usted está haciendo no es necesario, puede verificar antes de hacer referencia al objeto, que no fue nulo. Por supuesto, validar lo que usará cuando se inicializa su objeto es un enfoque muy válido. –
@Ramhound: este es un enfoque común cuando se utilizan marcos DI como StructureMap, donde no necesariamente se tiene control directo sobre lo que se pasa al constructor. Si su clase es inútil sin 'myObject' y este es el único lugar para inicializarla, tiene sentido lanzar excepciones lo antes posible para que las conozca. En una aplicación web de larga ejecución, es posible que no conozca el problema hasta que alguien llame a un método que requiera el objeto. –