Debug.WriteIf Metoda

Definicja

Zapisuje informacje o debugowaniu do odbiorników śledzenia w kolekcji, Listeners jeśli warunek to true.

Przeciążenia

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Jeśli condition ma truewartość , zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners .

WriteIf(Boolean, Object)

Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

WriteIf(Boolean, String)

Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli określony warunek to true.

WriteIf(Boolean, Object, String)

Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

WriteIf(Boolean, String, String)

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Źródło:
Debug.cs
Źródło:
Debug.cs
Źródło:
Debug.cs

Jeśli condition ma truewartość , zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners .

public:
 static void WriteIf(bool condition, System::Diagnostics::Debug::WriteIfInterpolatedStringHandler % message);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * WriteIfInterpolatedStringHandler -> unit
Public Shared Sub WriteIf (condition As Boolean, ByRef message As Debug.WriteIfInterpolatedStringHandler)

Parametry

condition
Boolean

Wyrażenie warunkowe do obliczenia. Jeśli warunek to true, wartość jest zapisywana w odbiornikach śledzenia w kolekcji.

message
Debug.WriteIfInterpolatedStringHandler

Komunikat do zapisania, jeśli condition ma wartość true.

Atrybuty

Uwagi

To przeciążenie zostało wprowadzone na platformie .NET 6 w celu zwiększenia wydajności. W porównaniu z przeciążeniami, które przyjmują String parametr, to przeciążenie oblicza tylko wszystkie elementy formatowania ciągów interpolowanych, jeśli komunikat jest wymagany.

Domyślnie dane wyjściowe są zapisywane w wystąpieniu klasy DefaultTraceListener.

Użyj parametru , category aby pogrupować komunikaty wyjściowe.

Ta metoda wywołuje metodę Write odbiornika śledzenia.

Zobacz też

Dotyczy

WriteIf(Boolean, Object)

Źródło:
Debug.cs
Źródło:
Debug.cs
Źródło:
Debug.cs

Zapisuje wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

public:
 static void WriteIf(bool condition, System::Object ^ value);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object value);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object? value);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * obj -> unit
Public Shared Sub WriteIf (condition As Boolean, value As Object)

Parametry

condition
Boolean

Wyrażenie warunkowe do obliczenia. Jeśli warunek to true, wartość jest zapisywana w odbiornikach śledzenia w kolekcji.

value
Object

Obiekt, którego nazwa jest wysyłana do obiektu Listeners.

Atrybuty

Przykłady

W poniższym przykładzie zostanie utworzona nazwana TraceSwitchgeneralSwitch. Ten przełącznik jest ustawiany poza przykładem kodu.

Jeśli przełącznik jest ustawiony na TraceLevelError wartość lub wyższą, przykład zwraca nazwę pierwszego parametru wartości do .Listeners Aby uzyskać informacje na temat dodawania odbiornika do Listeners kolekcji, zobacz klasę TraceListenerCollection .

Następnie, jeśli TraceLevel parametr ma wartość Verbose, przykład zwraca komunikat w tym samym wierszu co pierwszy komunikat. Terminator wiersza jest zgodny z drugim komunikatem.

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew TraceSwitch( "General","Entire Application" );

public:
   static void MyErrorMethod( Object^ myObject )
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceError, myObject );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceVerbose, 
         " is not a valid value for this method." );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
static TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static public void MyErrorMethod(Object myObject)
{
    // Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, myObject);

    // Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, " is not a valid value for this method.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod(myObject As Object)
    ' Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, myObject)
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, " is not a valid value for this method.")
End Sub

Uwagi

Domyślnie dane wyjściowe są zapisywane w wystąpieniu klasy DefaultTraceListener.

Ta metoda wywołuje metodę Write odbiornika śledzenia.

Uwagi dotyczące dziedziczenia

Można zminimalizować kary wydajności instrumentowania aplikacji przy użyciu If...Then instrukcji zamiast instrukcji.WriteIf(Boolean, String) Poniższe dwa przykłady kodu wysyłają ten sam komunikat debugowania. Jednak pierwszy przykład jest znacznie szybszy, gdy śledzenie jest wyłączone, ponieważ jeśli mySwitch.TraceError zostanie obliczona falsewartość , nie wywołasz metody Write(String). Drugi przykład zawsze wywołuje metodę WriteIf(Boolean, String), nawet wtedy, gdy mySwitch.TraceError nie są false generowane żadne dane wyjściowe śledzenia. Może to spowodować niepotrzebne wykonanie dowolnie złożonego kodu.

Pierwszy przykład:

if(mySwitch.TraceError)
    Debug.Write("aNumber = " + aNumber + " out of range");

Drugi przykład:

Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

Zobacz też

Dotyczy

WriteIf(Boolean, String)

Źródło:
Debug.cs
Źródło:
Debug.cs
Źródło:
Debug.cs

Zapisuje komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

public:
 static void WriteIf(bool condition, System::String ^ message);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string message);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string? message);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * string -> unit
Public Shared Sub WriteIf (condition As Boolean, message As String)

Parametry

condition
Boolean

Wyrażenie warunkowe do obliczenia. Jeśli warunek to true, komunikat jest zapisywany w odbiornikach śledzenia w kolekcji.

message
String

Komunikat do zapisu.

Atrybuty

Przykłady

W poniższym przykładzie zostanie utworzona nazwana TraceSwitchgeneralSwitch. Ten przełącznik jest ustawiany poza przykładem kodu.

Jeśli przełącznik jest ustawiony na TraceLevelError lub wyższy, przykład zwraca pierwszy komunikat o błędzie do .Listeners Aby uzyskać informacje o dodawaniu Listeners odbiornika do kolekcji, zobacz klasę TraceListenerCollection .

Następnie, jeśli TraceLevel parametr ma wartość Verbose, przykład zwraca drugi komunikat o błędzie w tym samym wierszu co pierwszy komunikat. Terminator wiersza jest zgodny z drugim komunikatem.

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew TraceSwitch( "General","Entire Application" );

public:
   static void MyErrorMethod()
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceError, "My error message. " );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteIf( generalSwitch->TraceVerbose, 
         "My second error message." );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static void MyErrorMethod()
{
    // Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, "My error message. ");

    // Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, "My second error message.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod()
    ' Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, "My error message. ")
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, "My second error message.")
End Sub

Uwagi

Domyślnie dane wyjściowe są zapisywane w wystąpieniu klasy DefaultTraceListener.

Ta metoda wywołuje metodę Write odbiornika śledzenia.

Uwagi dotyczące dziedziczenia

Można zminimalizować kary wydajności instrumentowania aplikacji przy użyciu If...Then instrukcji zamiast instrukcji.WriteIf(Boolean, String) Poniższe dwa przykłady kodu wysyłają ten sam komunikat debugowania. Jednak pierwszy przykład jest znacznie szybszy, gdy śledzenie jest wyłączone, ponieważ jeśli mySwitch.TraceError zostanie obliczona falsewartość , nie wywołasz metody Write(String). Drugi przykład zawsze wywołuje metodę WriteIf(Boolean, String), nawet wtedy, gdy mySwitch.TraceError nie są false generowane żadne dane wyjściowe śledzenia. Może to spowodować niepotrzebne wykonanie dowolnie złożonego kodu.

Pierwszy przykład:

if(mySwitch.TraceError)
    Debug.Write("aNumber = " + aNumber + " out of range");

Drugi przykład:

Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

Zobacz też

Dotyczy

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Źródło:
Debug.cs
Źródło:
Debug.cs
Źródło:
Debug.cs

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w Listeners kolekcji, jeśli określony warunek to true.

public:
 static void WriteIf(bool condition, System::Diagnostics::Debug::WriteIfInterpolatedStringHandler % message, System::String ^ category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message, string? category);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * WriteIfInterpolatedStringHandler * string -> unit
Public Shared Sub WriteIf (condition As Boolean, ByRef message As Debug.WriteIfInterpolatedStringHandler, category As String)

Parametry

condition
Boolean

Wyrażenie warunkowe do obliczenia. Jeśli warunek to true, komunikat jest zapisywany w odbiornikach śledzenia w kolekcji.

message
Debug.WriteIfInterpolatedStringHandler

Wiadomość do zapisu.

category
String

Nazwa kategorii, używana do organizowania danych wyjściowych.

Atrybuty

Uwagi

To przeciążenie zostało wprowadzone na platformie .NET 6 w celu zwiększenia wydajności. W porównaniu z przeciążeniami, które przyjmują String parametr, to przeciążenie oblicza tylko wszystkie elementy formatowania ciągów interpolowanych, jeśli komunikat jest wymagany.

Domyślnie dane wyjściowe są zapisywane w wystąpieniu klasy DefaultTraceListener.

Użyj parametru , category aby pogrupować komunikaty wyjściowe.

Ta metoda wywołuje metodę Write odbiornika śledzenia.

Zobacz też

Dotyczy

WriteIf(Boolean, Object, String)

Źródło:
Debug.cs
Źródło:
Debug.cs
Źródło:
Debug.cs

Zapisuje nazwę kategorii i wartość metody obiektu ToString() do odbiorników śledzenia w Listeners kolekcji, jeśli warunek to true.

public:
 static void WriteIf(bool condition, System::Object ^ value, System::String ^ category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object value, string category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object? value, string? category);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * obj * string -> unit
Public Shared Sub WriteIf (condition As Boolean, value As Object, category As String)

Parametry

condition
Boolean

Wyrażenie warunkowe do obliczenia. Jeśli warunek to true, nazwa kategorii i wartość są zapisywane w odbiornikach śledzenia w kolekcji.

value
Object

Obiekt, którego nazwa jest wysyłana do obiektu Listeners.

category
String

Nazwa kategorii, używana do organizowania danych wyjściowych.

Atrybuty

Przykłady

W poniższym przykładzie zostanie utworzona nazwana TraceSwitchgeneralSwitch. Ten przełącznik jest ustawiany poza przykładem kodu.

Jeśli przełącznik jest ustawiony na TraceLevelVerbose, przykład zwraca nazwę myObject i do categoryListeners. Aby uzyskać informacje na temat dodawania odbiornika do Listeners kolekcji, zobacz klasę TraceListenerCollection .

Następnie, jeśli TraceLevel parametr jest ustawiony na Error lub wyższy, przykład zwraca drugi komunikat o błędzie w tym samym wierszu co pierwszy komunikat. Terminator wiersza jest zgodny z drugim komunikatem.

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew TraceSwitch( "General","Entire Application" );

public:
   static void MyErrorMethod( Object^ myObject, String^ category )
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceVerbose, myObject, category );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceError, 
         " Object is not valid for this category." );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
static TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static public void MyErrorMethod(Object myObject, string category)
{
    // Write the message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject, category);

    // Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Object is not valid for this category.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod(myObject As Object, category As String)
    ' Write the message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject, category)
    
    ' Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Object is not valid for this category.")
End Sub

Uwagi

Domyślnie dane wyjściowe są zapisywane w wystąpieniu klasy DefaultTraceListener.

Parametr category może służyć do grupowania komunikatów wyjściowych.

Ta metoda wywołuje metodę Write odbiornika śledzenia.

Uwagi dotyczące dziedziczenia

Można zminimalizować kary wydajności instrumentowania aplikacji przy użyciu If...Then instrukcji zamiast instrukcji.WriteIf(Boolean, String) Poniższe dwa przykłady kodu wysyłają ten sam komunikat debugowania. Jednak pierwszy przykład jest znacznie szybszy, gdy śledzenie jest wyłączone, ponieważ jeśli mySwitch.TraceError zostanie obliczona falsewartość , nie wywołasz metody Write(String). Drugi przykład zawsze wywołuje metodę WriteIf(Boolean, String), nawet wtedy, gdy mySwitch.TraceError nie są false generowane żadne dane wyjściowe śledzenia. Może to spowodować niepotrzebne wykonanie dowolnie złożonego kodu.

Pierwszy przykład:

if(mySwitch.TraceError)
    Debug.Write("aNumber = " + aNumber + " out of range");

Drugi przykład:

Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

Zobacz też

Dotyczy

WriteIf(Boolean, String, String)

Źródło:
Debug.cs
Źródło:
Debug.cs
Źródło:
Debug.cs

Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji, Listeners jeśli warunek to true.

public:
 static void WriteIf(bool condition, System::String ^ message, System::String ^ category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string message, string category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string? message, string? category);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * string * string -> unit
Public Shared Sub WriteIf (condition As Boolean, message As String, category As String)

Parametry

condition
Boolean

Wyrażenie warunkowe do oceny. Jeśli warunek to true, nazwa kategorii i komunikat są zapisywane w odbiornikach śledzenia w kolekcji.

message
String

Komunikat do zapisu.

category
String

Nazwa kategorii, używana do organizowania danych wyjściowych.

Atrybuty

Przykłady

W poniższym przykładzie zostanie utworzona nazwana TraceSwitchgeneralSwitch. Ten przełącznik jest ustawiony poza przykładem kodu.

Jeśli przełącznik jest ustawiony na TraceLevelVerbosewartość , przykład zwraca pierwszy komunikat o błędzie do elementu Listeners. Aby uzyskać informacje na temat dodawania odbiornika do Listeners kolekcji, zobacz klasę TraceListenerCollection .

Następnie, jeśli parametr TraceLevel jest ustawiony na Error lub wyższy, przykład generuje drugi komunikat o błędzie w tym samym wierszu co pierwszy komunikat. Terminator wiersza jest zgodny z drugim komunikatem.

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew TraceSwitch( "General","Entire Application" );

public:
   static void MyErrorMethod( Object^ myObject, String^ category )
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceVerbose, String::Concat( myObject, 
         " is not a valid object for category: " ), category );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceError, 
         " Please use a different category." );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
static TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static public void MyErrorMethod(Object myObject, string category)
{
    // Write the message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject.ToString() +
       " is not a valid object for category: ", category);

    // Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Please use a different category.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod(myObject As Object, category As String)
    ' Write the message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject.ToString() & _
        " is not a valid object for category: ", category)
    
    ' Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Please use a different category.")
End Sub

Uwagi

Domyślnie dane wyjściowe są zapisywane w wystąpieniu klasy DefaultTraceListener.

Parametr category może służyć do grupowania komunikatów wyjściowych.

Ta metoda wywołuje metodę TraceListener.Write odbiornika śledzenia.

Uwagi dotyczące dziedziczenia

Można zminimalizować kary wydajności instrumentowania aplikacji przy użyciu If...Then instrukcji zamiast instrukcji.WriteIf(Boolean, String) Poniższe dwa przykłady kodu wysyłają ten sam komunikat debugowania. Jednak pierwszy przykład jest znacznie szybszy, gdy śledzenie jest wyłączone, ponieważ jeśli mySwitch.TraceError zostanie obliczona falsewartość , nie wywołasz metody Write(String). Drugi przykład zawsze wywołuje metodę WriteIf(Boolean, String), nawet wtedy, gdy mySwitch.TraceError nie są false generowane żadne dane wyjściowe śledzenia. Może to spowodować niepotrzebne wykonanie dowolnie złożonego kodu.

Pierwszy przykład:

if(mySwitch.TraceError)
    Debug.Write("aNumber = " + aNumber + " out of range");

Drugi przykład:

Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");

Zobacz też

Dotyczy