1. ホーム
  2. c#

[解決済み】#if RELEASEは、C#の#if DEBUGのように動作するのでしょうか?

2022-03-30 12:33:51

質問

私が見た#if コンパイラディレクティブの例では、すべて "DEBUG" を使っています。 同じように"RELEASE"を使って、デバッグモードでコンパイルしたときに実行させたくないコードを除外することはできますか?このブロックで囲みたいコードは、大量の電子メールを送信するので、テスト時に誤ってそれらを送信したくありません。

解決方法は?

いいえ、あなたが何らかの作業をしない限り、そうはなりません。

ここで重要なのは、DEBUGの正体で、コンパイラがチェックできる定数のようなものが定義されていることです。

プロジェクトのプロパティを確認すると、「ビルド」タブの下に、3つのものがあります。

  • 条件付きコンパイルシンボル(Conditional Compilation Symbols)と書かれたテキストボックス。
  • DEBUG定数を定義する」チェックボックス。
  • TRACE定数を定義する".と書かれたチェックボックス。

このようなチェックボックスはありませんし、RELEASEという名前の定数/シンボルもあらかじめ定義されていません。

ただし、これらの設定は構成ごとに行われるため、その前にプロジェクトの構成をRelease-modeに設定してください。

つまり、基本的には、テキストボックスに追加しない限りは #if RELEASE は、どのような設定でもコードを生成しません。