c# でのデバッグの時のみ走るロジックの書き方

投稿者: Anonymous

c#において、if def相当のデバッグ用ロジックはどう書けば良いですか?

解決

C言語と同様に#if #else #endifプリプロセッサ ディレクティブが使えます。またデバッグビルドを行う際、DEBUGが定義されるよう構成されているため#if DEBUGと記述することができます。
ただし、これは厳密には「デバッグの時のみ走る」でなく、デバッグビルドの場合は常に走ります。

一般にデバッグ時/非デバッグ時で処理を分けるべきではありません。しかし、適切に動作しているかのチェックコードを埋め込むことはよくあり、C#言語においても、Debug.Assertメソッドが用意されています。こちらもデバッグビルドの場合は常に走るチェックコードとなります。

厳密な意味で「デバッグの時のみ走る」ですとDebugger.IsAttachedプロパティが用意されています。デバッグ中=デバッガーに接続されている場合にのみこのプロパティはtrueを返しますので、if文で判定して必要なロジックを書くことができます。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *