C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#の#if、#elif、#else、#endifディレクティブの使い方を徹底解説

C#における条件付きコンパイルを行うためのプリプロセッサディレクティブには、#if#elif#else#endifなどがあります。これらを使いこなすことで、デバッグビルドとリリースビルドで処理を切り替えたり、特定の環境向けのコードだけをコンパイルしたりすることが可能になります。

すべてのプリプロセッサディレクティブは「#」で始まります。ディレクティブが記述された行では、その前に置けるのは空白文字(ホワイトスペース)のみです。また、プリプロセッサディレクティブはステートメント(文)ではないため、行末にセミコロン(;)を付ける必要はありません。

#if ディレクティブとは

#ifディレクティブは、指定したシンボル(または複数のシンボル)がtrueと評価されるかどうかをテストするために使用します。シンボルが定義されていればtrue、されていなければfalseとなります。論理演算子(&&、||、!)を組み合わせて、より複雑な条件式を構築することもできます。

#else ディレクティブとは

#elseディレクティブは、#ifと組み合わせて使用することで、複合的な条件分岐ディレクティブを作成できます。#ifの条件がfalseだった場合にコンパイルされるコードブロックを指定します。

#elif ディレクティブとは

#elifディレクティブ(else if の略)も、複合的な条件付きコンパイルディレクティブを作成するために使われます。直前の#if#elifの条件がfalseだった場合に、新たな条件を評価します。複数の#elifを連ねることで、多段階の条件分岐を実現できます。

#endif ディレクティブとは

#endifディレクティブは、条件付きコンパイルディレクティブの終わりを示します。#ifで始まった条件ブロックは、必ずこの#endifで閉じる必要があります。

#if、#elif、#else、#endifの使用例

以下は、これら4つのディレクティブを組み合わせた実際の使用例です。

#define One
#undef Two

using System;

namespace Demo {
    class Program {
        static void Main(string[] args) {
            #if (One && TWO)
            Console.WriteLine("Both are defined");
            #elif (ONE && !TWO)
            Console.WriteLine("ONE is defined and TWO is undefined");
            #elif (!ONE && TWO)
            Console.WriteLine("ONE is defined and TWO is undefined");
            #else
            Console.WriteLine("Both are undefined");
            #endif
        }
    }
}

実行結果

Both are undefined

コードの解説

この例では、まず#define Oneでシンボル「One」を定義し、続いて#undef Twoでシンボル「Two」の定義を解除しています。

ここで注意したいのは、C#のプリプロセッサシンボルは大文字・小文字が区別されるという点です。「One」と「ONE」、「Two」と「TWO」はそれぞれ別のシンボルとして扱われます。

  • #if (One && TWO):「One」は定義済みですが「TWO」は未定義のため、全体としてfalse
  • #elif (ONE && !TWO):「ONE」は未定義のためfalse
  • #elif (!ONE && TWO):「!ONE」はtrueですが「TWO」が未定義のためfalse

その結果、どの条件にも一致せず、#elseブロック内の「Both are undefined」が出力されます。

まとめ

#if#endifまでの一連のディレクティブを使うことで、コンパイル時に条件に応じてコードを出し分けることができます。デバッグ用コードの有効化・無効化や、プラットフォーム固有の処理の切り替えなど、実務でも頻繁に活用される重要な機能なので、ぜひマスターしておきましょう。

  1. 2台以上のパソコンを1台のモニターに接続する3つの方法

    現在、家庭に2台以上のパソコンがあり、仕事、勉強、ゲーム、ネットサーフィンなどさまざまな用途で使い分けているのは珍しくありません。かつてソフトウェア開発者たちは、世界中のすべての家庭にコンピュータが行き渡るとは想像していませんでしたが、今日ではコンピュータは時計やテレビと同じように、家庭・学校・オフィスにすっかり浸透しています。個人用と仕事用など、複数のパソコンを持っている方も多いのではないでしょうか。 この記事では、「2台以上のパソコンを1台のモニターに接続する方法」をわかりやすく解説します。 パソコンが同じ机の上にあっても、別々の部屋に設置されていても、1組のマウス・キーボード・モニターだ

  2. Androidスマホ1台でWhatsAppを2つ使う方法|仮想電話番号の取得手順を解説

    このガイドは、正当な理由で2つ目のWhatsAppアカウントが必要な方に向けて解説するものです。不正な目的での利用は避けてください。本記事では、仮想電話番号(無料番号)を取得してWhatsApp認証を行い、1台のAndroidスマホで2つのWhatsAppを使う方法を詳しく紹介します。 Androidスマホ1台でWhatsAppを2つ使う方法 仮想電話番号を取得するには? WhatsAppは、SMSの登場以来における通信分野の最も画期的な成果の一つと言えます。従来は携帯キャリアがSMS送信ごとに料金を徴収していましたが、WhatsAppはユーザーに無料のメッセージサービスを提供しています。必要