複雑なステートメントでヌル参照例外を追いかけるのに、多くのデバッグ時間が費やされているようです。例えば:私はとNullReferenceExceptionを得るときヌル参照を持つオブジェクトにヌル参照例外の名前を付けることができないのはなぜですか?
For Each game As IHomeGame in _GamesToOpen.GetIterator()
はなぜ、私は、スタックトレースの行番号ではなく、ヌル等しいオブジェクトの名前を取得することができます。言い換えれば、なぜ:
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.
または
game was set to null.
これは厳密には匿名性を保護するためのもので、設計上の選択であり、またはコードがありますか?デバッグ時の例外にこの情報を含まないようにするコンパイラ設計の理由は何ですか?
行番号も実行時のものです。デバッグ時のコンパイルには、あらゆる種類のコンパイル時のもの(クラス名やメソッド名、行番号など)が含まれています。 –
クラスとメソッド、およびパラメータ名は実際にILレベルで存在します。しかし、生成されたILでは、変数はほとんどなくなっています。基本的には、特定の変数に例外を関連付ける特別な方法はありません。「if(a
上記のコメントのために受け入れられました。 –