Me parece que una gran parte de mi tiempo de depuración se emplea para buscar excepciones de referencia nula en sentencias complejas. Por ejemplo:¿Por qué una excepción de referencia nula no puede nombrar el objeto que tiene una referencia nula?
For Each game As IHomeGame in _GamesToOpen.GetIterator()
Por qué, cuando recibo una NullReferenceException, puedo obtener el número de línea en el seguimiento de la pila, pero no el nombre del objeto que es igual a cero. En otras palabras, por qué:
Object reference not set to an instance of an object.
en lugar de
_GamesToOpen is not set to an instance of an object.
o
Anonymous object returned by _GamesToOpen.GetIterator() is null.
o
game was set to null.
Es ésta estrictamente una opción de diseño, la intención de proteger el anonimato del código o hay una comp ¿El motivo en el diseño del compilador no incluye esta información en la excepción de tiempo de depuración?
Los números de línea también son algo de tiempo de ejecución. La compilación de tiempo de depuración contiene todo tipo de cosas en tiempo de compilación (nombres de clase y método, números de línea, etc.) ¿Por qué no nombres variables? –
Las clases y métodos y nombres de parámetros realmente existen en el nivel IL. Pero las variables prácticamente desaparecen en el IL generado. Básicamente, no hay una forma específica de relacionar una excepción con una variable específica: Asumir "if (a
Aceptado debido al comentario anterior. –