BooleanSwitch クラス

定義

デバッグとトレースの出力を制御する単純なオン/オフの切り替え機能を提供します。

public ref class BooleanSwitch : System::Diagnostics::Switch
public class BooleanSwitch : System.Diagnostics.Switch
type BooleanSwitch = class
    inherit Switch
Public Class BooleanSwitch
Inherits Switch
継承
BooleanSwitch

次の例では、 を BooleanSwitch 作成し、 スイッチを使用してエラー メッセージを出力するかどうかを判断します。 スイッチはクラス レベルで作成します。 メソッドは Main 、エラー メッセージとエラーが発生した場所を に MyMethod渡します。

public ref class BooleanSwitchTest
{
private:

   /* Create a BooleanSwitch for data.*/
   static BooleanSwitch^ dataSwitch = gcnew BooleanSwitch( "Data","DataAccess module" );

public:
   static void MyMethod( String^ location )
   {
      
      //Insert code here to handle processing.
      if ( dataSwitch->Enabled )
            Console::WriteLine( "Error happened at {0}", location );
   }

};

int main()
{
   
   //Run the method which writes an error message specifying the location of the error.
   BooleanSwitchTest::MyMethod( "in main" );
}
// Class level declaration.
/* Create a BooleanSwitch for data.*/
static BooleanSwitch dataSwitch = new BooleanSwitch("Data", "DataAccess module");

static public void MyMethod(string location)
{
    //Insert code here to handle processing.
    if (dataSwitch.Enabled)
        Console.WriteLine("Error happened at " + location);
}

public static void Main(string[] args)
{
    //Run the method which writes an error message specifying the location of the error.
    MyMethod("in Main");
}
' Class level declaration.
' Create a BooleanSwitch for data. 
Private Shared dataSwitch As New BooleanSwitch("Data", "DataAccess module")


Public Shared Sub MyMethod(location As String)
    ' Insert code here to handle processing.
    If dataSwitch.Enabled Then
        Console.WriteLine(("Error happened at " + location))
    End If
End Sub

' Entry point which delegates to C-style main function.
Public Overloads Shared Sub Main()
    Main(System.Environment.GetCommandLineArgs())
End Sub
 
Overloads Public Shared Sub Main(args() As String)
    ' Run the method which writes an error message specifying the location of the error.
    MyMethod("in Main")
End Sub

注釈

ブールトレーススイッチを使用して、メッセージの重要度に基づいてメッセージを有効または無効にすることができます。 スイッチの現在の Enabled 値を取得するには、 プロパティを使用します。

コードで を BooleanSwitch 作成し、 プロパティを Enabled 直接設定して、コードの特定のセクションをインストルメント化できます。

.NET Frameworkアプリの場合のみ、アプリケーション構成ファイルを介して をBooleanSwitch有効または無効にしてから、アプリケーションで構成されたBooleanSwitch値を使用することもできます。 を構成するには、 BooleanSwitchアプリケーションの名前に対応する構成ファイルを編集します。 このファイル内では、スイッチの追加または削除、スイッチの値の設定、またはアプリケーションによって以前に設定されたすべてのスイッチのクリアを行うことができます。 構成ファイルは、次の例のように書式設定する必要があります。

<configuration>  
  <system.diagnostics>  
    <switches>  
      <add name="mySwitch" value="1"/>  
    </switches>  
  </system.diagnostics>  
</configuration>  

この構成例セクションでは、 プロパティが に設定され、値が DisplayNamemySwitchtrue設定された をEnabled定義BooleanSwitchします。 .NET Framework アプリケーション内で、次のコード例に示すように、同じ名前の をBooleanSwitch作成することで、構成されたスイッチ値を使用できます。

private:
    static BooleanSwitch^ boolSwitch = gcnew BooleanSwitch("mySwitch",
        "Switch in config file");

public:
    static void Main( )
    {
        //...
        Console::WriteLine("Boolean switch {0} configured as {1}",
            boolSwitch->DisplayName, ((Boolean^)boolSwitch->Enabled)->ToString());
        if (boolSwitch->Enabled)
        {
            //...
        }
    }
private static BooleanSwitch boolSwitch = new BooleanSwitch("mySwitch",
    "Switch in config file");

public static void Main()
{
    //...
    Console.WriteLine("Boolean switch {0} configured as {1}",
        boolSwitch.DisplayName, boolSwitch.Enabled.ToString());
    if (boolSwitch.Enabled)
    {
        //...
    }
}
Private Shared boolSwitch As new BooleanSwitch("mySwitch", _
    "Switch in config file")

Public Shared Sub Main( )
    '...
    Console.WriteLine("Boolean switch {0} configured as {1}",
        boolSwitch.DisplayName, boolSwitch.Enabled.ToString())
    If boolSwitch.Enabled = True Then
        '...
    End If
End Sub

.NET Core および .NET 5 以降のアプリの場合、 Enabled 新しいスイッチの プロパティは既定で に false 設定されます。

.NET Framework アプリのEnabled場合、 プロパティは構成ファイルで指定された値を使用して設定されます。 プロパティを に設定するには、値 0 のスイッチをEnabled構成します。プロパティを にfalse設定するには、0 以外の値でスイッチをtrueEnabled構成します。 コンストラクターが BooleanSwitch 構成ファイルで初期スイッチ設定を見つけられない場合、 Enabled 新しいスイッチの プロパティは に false設定されます。

スイッチを使用するには、トレースまたはデバッグを有効にする必要があります。 次の構文はコンパイラ固有です。 C# または Visual Basic 以外のコンパイラを使用する場合は、コンパイラのドキュメントを参照してください。

  • C# でデバッグを有効にするには、コードの /d:DEBUG コンパイル時にコンパイラ コマンド ラインに フラグを追加するか、ファイルの先頭に を追加 #define DEBUG します。 Visual Basic で、 フラグを /d:DEBUG=True コンパイラ コマンド ラインに追加します。

  • C# でトレースを有効にするには、コードの /d:TRACE コンパイル時にコンパイラ コマンド ラインに フラグを追加するか、ファイルの先頭に を追加 #define TRACE します。 Visual Basic で、 フラグを /d:TRACE=True コンパイラ コマンド ラインに追加します。

注意

クラスを単独で使用 BooleanSwitch する場合、これらのデバッグおよびトレース コンパイラ スイッチは必要ありません。 これらは、条件付きでコンパイルされる メソッドまたは Debug メソッドとTrace組み合わせてのみ必要です。

アプリケーションのインストルメント化の詳細については、 と Traceを参照してくださいDebug。 トレース スイッチの構成と使用の詳細については、「 トレース スイッチ」を参照してください。

注意

パフォーマンスを向上させるために、クラスのメンバーstaticを作成BooleanSwitchできます。

コンストラクター

BooleanSwitch(String, String)

指定した表示名と説明を使用して、BooleanSwitch クラスの新しいインスタンスを初期化します。

BooleanSwitch(String, String, String)

指定した表示名、説明、および既定のスイッチ値を使用して、BooleanSwitch クラスの新しいインスタンスを初期化します。

プロパティ

Attributes

アプリケーション構成ファイルに定義されているカスタム スイッチ属性を取得します。

(継承元 Switch)
DefaultValue

コンストラクターで割り当てられた既定値を取得します。

(継承元 Switch)
Description

スイッチの説明を取得します。

(継承元 Switch)
DisplayName

スイッチを識別するための名前を取得します。

(継承元 Switch)
Enabled

スイッチが有効であるか、または無効であるかを示す値を取得または設定します。

SwitchSetting

このスイッチの現在の設定を取得または設定します。

(継承元 Switch)
Value

スイッチの値を取得または設定します。

(継承元 Switch)

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetSupportedAttributes()

スイッチによってサポートされるカスタム属性を取得します。

(継承元 Switch)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
OnSwitchSettingChanged()

SwitchSetting プロパティが変更されると発生します。

(継承元 Switch)
OnValueChanged()

Value プロパティの新しい値を、ブール値として解析可能かどうかを判別します。

OnValueChanged()

Value プロパティが変更されると発生します。

(継承元 Switch)
Refresh()

トレース構成データを更新します。

(継承元 Switch)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください