Q:

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

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

A:

C言語と同様に#if #else #endifのプリプロセッサ ディレクティブが使えます。またデバッグビルドを行う際、DEBUGが定義されるよう構成されているため#if DEBUGと記述することができます。
ただし、これは厳密には「デバッグの時のみ走る」でなく、デバッグビルドの場合は常に走ります。
一般にデバッグ時／非デバッグ時で処理を分けるべきではありません。しかし、適切に動作しているかのチェックコードを埋め込むことはよくあり、C#言語においても、Debug.Assertメソッドが用意されています。こちらもデバッグビルドの場合は常に走るチェックコードとなります。
厳密な意味で「デバッグの時のみ走る」ですとDebugger.IsAttachedプロパティが用意されています。デバッグ中＝デバッガーに接続されている場合にのみこのプロパティはtrueを返しますので、if文で判定して必要なロジックを書くことができます。

