De la parte superior de mi cabeza, no puedo pensar en 4 formas de comprobar los argumentos nulos:Pros/contras de diferentes métodos para probar las condiciones previas?
Debug.Assert(context != null);
Contract.Assert(context != null);
Contract.Requires(context != null);
if (context == null) throw new ArgumentNullException("context");
Siempre he usado el último método, pero acabo de ver un fragmento de código que utiliza Contract.Requires
, que me estoy familiarizado con ¿Cuáles son las ventajas/desventajas de cada método? ¿Hay otras formas?
En VS2010 w/ReSharper,
Contract.Assert
me advierte que la expresión es siempre cierto (como se sabe, no estoy muy seguro ... no puede ser nula HttpContext?),Contract.Requires
consigue desvaneció y me dice que el compilador no invocará el método (supongo que debido a la razón anterior, que nunca será nulo) y- si cambio de último recurso para todos
context != null
el código siguiente el ala se desvanece y me dice que el código es heurísticamente inalcanzable.
Por lo tanto, parece que los últimos 3 métodos tienen algún tipo de inteligencia integrada en el comprobador estático VS, y Debug.Assert
es tonto.
La pregunta no está clara. ¿Estás tratando de usarlos todos a la vez? –
@Matthew: No estoy seguro de cómo no está claro ... no, no estoy tratando de usarlos todos a la vez. Hice un fragmento de código así solo para ilustrar las diferentes formas en que puede verificar null. – mpen
Eso es lo que pensé del resto de la pregunta, pero la presentación de sintaxis que usaste fue extraña. –