por diseño contrato c#-4.0 argumentnullexception

c#-4.0 - diseño por contrato java



Diseño por contrato/C#4.0/evitando ArgumentNullException (5)

No estoy seguro acerca de las construcciones nativas de DbC en C # 4.0, pero Microsoft lanzará una biblioteca de contratos en varios idiomas.
Puede descargar la versión para MSVS2008 aquí .

Estoy terriblemente cansado de comprobar todos mis argumentos para null, y arrojar ArgumenutNullExceptions cuando lo son.

Según lo entiendo, C # 4.0 permite algunos diseños por construcciones contractuales. ¿Será posible especificar que un método no aceptará argumentos nulos en C # 4.0?

Además, ¿hay algo que pueda hacer mientras tanto (tal vez un atributo?) Para evitar esta tarea monótona de verificar nulo y arrojar?


Como alternativa a las respuestas ya dadas, vale la pena investigar el Null Object design pattern .

La esencia de este patrón de diseño es que una vez que se crea el "objeto nulo", ya no es necesario realizar ninguna comprobación de nulo y los métodos del objeto nulo implementan el comportamiento deseado cada vez que se haya emitido un nulo (de lo contrario) una referencia a un "objeto real".

Este patrón de diseño no depende de C # 4.0 y, de hecho, se puede implementar fácilmente en casi cualquier lenguaje de programación OO .




Rick Brewster describe una buena solución para la comprobación de parámetros de estilo conciso y declarativo en esta publicación,

http://blog.getpaint.net/2008/12/06/a-fluent-approach-to-c-parameter-validation/

Evita el uso de la reflexión (inconveniente de DbC) y no crea sobrecarga para una ruta de código no excepcional.

Me gusta cómo usa los métodos de extensión para permitir lo que parece ser una llamada de método de instancia en objetos nulos. Muy inteligente de codificación de IMO.

Si se vende en DbC, Google Spec # y PostSharp.