4

Windows Froms C#アプリケーションで最も奇妙な問題が発生しました

Console.WriteLineデバッグ用のコードをいくつか取得しましたが、突然これが機能しなくなりました。例えば

try{
   line(of.code);
   Console.WriteLine("HERE");
   other.line(of.code);
}
catch (Exception e)
{
   logger.logg(e.ToString());
}

回線にother.line(of.code);接続できず、コンソールに「ここ」が表示されません。

コードにはいくつかの場所があり、すべての場所で同じことが起こります。それはただ止まります、それはキャッチに到達しません...

そして最悪の部分は、それは以前に機能しました。私は長い間アプリケーションに取り組んできましたが、そのようなものを見たことがありません。

4

2 に答える 2

4

デバッグのためだけに必要な場合は、試してください

System.Diagnostics.Debug.Writeline("HERE");

代わりは。

これにより、出力が開発環境の出力ウィンドウに書き込まれ、さらに重要なことに、開発しているアプリケーションのタイプ(コンソールアプリ、Winフォーム、Webアプリなど)に関係なく機能します。

「リリース」に変更するとすぐに、デバッグ情報は無視され、コードにコンパイルされません。そこでも必要な場合は、代わりにTrace.Writelineを試してください。

于 2012-09-11T06:13:57.463 に答える
3

Console.WriteLineが失敗する原因となるいくつかのシナリオを考えることができます。

  1. 出力ストリームが無効なオブジェクトまたは誤動作するものに設定されています(この場合、プログラムを停止してください)。

  2. コンソール*の使用を許可されていない環境で実行しています。

  3. これはSystem.Console.WriteLineではなく、いくつかのusingディレクティブのおかげで呼び出される同じ名前の別のメソッドです。

*:そのような環境は考えられませんが、プラグインシステムの可能性はありますか?

Windows Fromsアプリケーションを作成していて、コンソールの出力ストリームを設定していない場合、Console.WriteLineは何もしません。したがって、デバッグが必要な場合は、Mattの推奨事項に従ってください。

于 2012-09-11T06:05:02.323 に答える