.NET常用システムAttirbute整理

3170 ワード

前処理表示特性Conditional
Conditionalは、プログラム固有の診断情報の表示を有効または無効にする方法に適用されます.
#define TRACE_ON

using System;

using System.Diagnostics;



public class Trace

{

    [Conditional("TRACE_ON")]

    public static void Msg(string msg)

    {

        Console.WriteLine(msg);

    }

}



public class ProgramClass

{

    static void Main()

    {

        Trace.Msg("Now in Main...");

        Console.WriteLine("Done.");

    }

}

TRACE_が定義されていない場合ON識別子の場合、トレース出力は表示されません.
Conditionalプロパティは、デバッグバージョンのトレースおよびログ記録機能を有効にするためにDEBUG識別子とともによく使用されます(パブリケーションバージョンにはこの2つの機能はありません).次の例に示します.
[Conditional("DEBUG")]

static void DebugMethod()

{

}

呼び出しが条件としてマークされたメソッドの場合、指定された前処理シンボルの存在または存在しないことによって、呼び出しが含まれるか省略されるかが決定されます.シンボルが定義されている場合は、呼び出しが含まれます.そうでない場合は呼び出しを省略します.Conditionalを使用することは、#if#endifの内部を閉鎖する方法の代わりであり、以下の例に示すように、より清潔で、よりユニークで、エラーの機会を減らすことができます.
#if DEBUG

void ConditionalMethod()

{

}

#endif

条件メソッドは、クラスまたは構造宣言のメソッドであり、voidの戻りタイプを持つ必要があります.
複数のマーカー間のYesまたはリレーション
詳細はhttp://msdn.microsoft.com/zh-cn/library/4xssyw96(v=vs.80).aspx