rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 2.0 - Conditional 属性

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

Conditional 属性

 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/attributes/general#conditional-attribute
 条件付きコンパイル シンボルによる条件付きメソッドを定義ができる。シンボルが定義されていない場合、メソッドの呼び出しが行われない。
 条件付きコンパイル シンボルについての詳細は次のページがわかりやすそうです。
 ConditionalAttribute クラス (System.Diagnostics) | Microsoft Docs

 次の例では、プロジェクトのプロパティ > ビルド > DEBUG 定数の定義ON にしているかデバッグ実行の際にのみ Debug Mode が出力されます。

static void Main(string[] args)
{
    WriteDebug();   // デバッグ時のみ実行される
}

[System.Diagnostics.Conditional("DEBUG")]
public static void WriteDebug()
{
    Console.WriteLine("Debug Mode");
}