質問: nullreferenceexceptionとは何ですか、どうすれば修正できますか? 私はいくつかのコードを持っていて、それが実行されると、nullreferenceexceptionを投げます。 オブジェクト参照がオブジェクトインスタンスに設定されていません。 これはどういう意味ですか、このエラーを修正するために何ができますか?
回答: whatが nullreferenceexceptions を引き起こし、avoid/fixに近づく一方で、このような例外は他で対処されています回答、多くのプログラマーがまだ学んでいないことは、開発中にそのような例外を独立してdebugする方法です。visual studioでは、通常、これは visual studio debugger のおかげで簡単です。最初に、正しいエラーがキャッチされることを確認します-参照してください vs2010で 'system.nullreferenceexception'でブレークを許可するにはどうすればよいですか? 1次に、 starting with debugging(f5) または attach [the vs debugger] to running process 。 debugger.break を使用すると便利な場合があります。これにより、デバッガの起動が要求されます。これで、nullreferenceexceptionがスロー(または未処理)されると、デバッガーは例外が発生した行で停止します(上記のルールを覚えていますか?)。エラーを簡単に発見できる場合があります。たとえば、次の行で、canが例外を発生させる唯一のコードは、mystringがnullと評価された場合のみです。これは watch window を見るか、 immediate window で式を実行することで確認できます。var x = mystring.trim(); 次のようなより高度なケースでは、上記の手法(ウォッチウィンドウまたはイミディエイトウィンドウ)のいずれかを使用して式を調べ、str1がnullであるか、str2がnullであるかを判断する必要があります。var x = str1.trim() + str2.trim(); where例外がスローされると、通常、後方に推論してnull値が[誤って]導入された場所を見つけるのは簡単です-例外の原因を理解するのに必要な時間をかけてください。 null式を検査します。そのようなヌル式をもたらす可能性のある以前の式を調べてください。 breakpoints を追加し、必要に応じてプログラムをステップ実行します。 デバッガーを使用します。1 break on throwsが非常に積極的であり、デバッガが.netまたはサードパーティライブラリのnpeで停止する場合、キャッチされる例外を制限するために break on user-unhandled を使用できます。さらに、vs2012では just my code を導入しています。これも有効にすることをお勧めします。 just my codeを有効にしてデバッグしている場合、動作はわずかに異なります。 just my codeを有効にすると、デバッガーはmy codeの外部でスローされ、my codeをパススルーしない最初の共通言語ランタイム(clr)例外を無視します