プリプロセッサ

プリプロセッサとは、ソフトウェアの役割による分類の一つで、ある中心的な処理を行うプログラムに対して、その前処理(preprocess)を行うプログラムのこと

機能一覧

If属性

コードとは関係なく、コード自体が実行されるかどうかを定義します

#define TEST

using System;

public class ThreadTimerTest
{
    public static void Main()
    {
#if TEST
        Console.WriteLine("Test1");
#else
        Console.WriteLine("Test2");
#endif

    }
}
//defineあり
// Test1

// defineなし
// Test2

Conditional属性

特定のメソッドをメソッド自体がないかのように振る舞う
呼び出し元のコードからも記述が消えるイメージです

#define TEST

using System;
// Diagnosticsのusingが必要
using System.Diagnostics;

public class ThreadTimerTest
{
    public static void Main()
    {
        // TESTの定義がないと(#define TESTがないと)実行もされません
        Show();
    }

    [Conditional("TEST")]
    static void Show()
    {
        Console.WriteLine("Hello World");
    }

}

//defineあり
// Hello World

// defineなし
// 何も表示されません

Unityの場合、ここに宣言(名前だけ)を記述するとプロジェクト全体に反映させることもできます

C#,Unity

Posted by hidepon