C#の#undefディレクティブとは?使い方とサンプルコードをわかりやすく解説
#undefディレクティブとは
C#における#undefディレクティブは、#defineディレクティブによって定義されたシンボルの定義を解除するために使用します。基本構文は次のとおりです。
#undef シンボル名
例えば、シンボル「One」の定義を解除したい場合は、以下のように記述します。
#undef One
定義が解除されたシンボルは、#ifディレクティブによる条件分岐においてfalseとして評価されます。
サンプルコード
以下は、#defineと#undefを組み合わせた具体的な使用例です。
#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 undefined and TWO is defined");
#else
Console.WriteLine("Both are undefined");
#endif
}
}
}
実行結果
Both are undefined
コードの解説
このプログラムでは、「One」は#defineで定義されている一方、「Two」は#undefによって定義が解除されています。ここで重要なのは、C#のプリプロセッサシンボルは大文字と小文字が区別されるという点です。つまり、「One」と「ONE」、「Two」と「TWO」はそれぞれ別のシンボルとして扱われます。
そのため、すべての条件式がfalseと評価され、最終的に#elseブロック内のメッセージ「Both are undefined」が出力されるという結果になります。
#undef使用時の注意点
#undefは、名前空間やクラスなどの実際のコードより前に記述する必要があります(コメントや他のディレクティブは除きます)。- 未定義のシンボルに対して
#undefを使用しても、コンパイルエラーにはなりません。 - シンボル名は大文字・小文字が区別されるため、
#define時と完全に同じ表記で指定するようにしましょう。
-
2台以上のパソコンを1台のモニターに接続する3つの方法
現在、家庭に2台以上のパソコンがあり、仕事、勉強、ゲーム、ネットサーフィンなどさまざまな用途で使い分けているのは珍しくありません。かつてソフトウェア開発者たちは、世界中のすべての家庭にコンピュータが行き渡るとは想像していませんでしたが、今日ではコンピュータは時計やテレビと同じように、家庭・学校・オフィスにすっかり浸透しています。個人用と仕事用など、複数のパソコンを持っている方も多いのではないでしょうか。 この記事では、「2台以上のパソコンを1台のモニターに接続する方法」をわかりやすく解説します。 パソコンが同じ机の上にあっても、別々の部屋に設置されていても、1組のマウス・キーボード・モニターだ
-
Androidスマホ1台でWhatsAppを2つ使う方法|仮想電話番号の取得手順を解説
このガイドは、正当な理由で2つ目のWhatsAppアカウントが必要な方に向けて解説するものです。不正な目的での利用は避けてください。本記事では、仮想電話番号(無料番号)を取得してWhatsApp認証を行い、1台のAndroidスマホで2つのWhatsAppを使う方法を詳しく紹介します。 Androidスマホ1台でWhatsAppを2つ使う方法 仮想電話番号を取得するには? WhatsAppは、SMSの登場以来における通信分野の最も画期的な成果の一つと言えます。従来は携帯キャリアがSMS送信ごとに料金を徴収していましたが、WhatsAppはユーザーに無料のメッセージサービスを提供しています。必要