많은 디버깅 시간이 복잡한 명령문에서 null 참조 예외를 추적하는 데 소비되는 것으로 보입니다. 예를 들면 : 나는 NullReferenceException이를 얻을 때Null 참조가있는 개체에 Null 참조 예외의 이름을 지정할 수없는 이유는 무엇입니까?
For Each game As IHomeGame in _GamesToOpen.GetIterator()
왜, 내가 줄 스택 추적에서 수 있지만 널 (null)에 해당 개체의 이름을 얻을 수 있습니다. 익명 성을 보호하기 위해 의미
game was set to null.
이 엄격하게 디자인 선택
Object reference not set to an instance of an object.
대신
_GamesToOpen is not set to an instance of an object.
또는
Anonymous object returned by _GamesToOpen.GetIterator() is null.
또는
, 왜 즉, 또는 코드가 있습니다. 디버깅 시간 예외에이 정보를 포함하지 않는 컴파일러 디자인의 이유는 무엇입니까?
줄 번호는 런타임 문제이기도합니다. 디버그 시간 컴파일에는 모든 종류의 컴파일 타임 (클래스 및 메소드 이름, 행 번호 등)이 포함됩니다. 왜 변수 이름이 아닌가? –
클래스와 메서드 및 매개 변수 이름은 실제로 IL 수준에서 존재합니다. 그러나 변수는 생성 된 일리노이에서 거의 사라졌습니다. 기본적으로 예외를 특정 변수와 관련시키는 구체적인 방법은 없습니다. "if (a
위의 이유 때문에 허용되었습니다. –