Udostępnij za pośrednictwem


Debug.WriteLineIf Metoda

Definicja

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

Przeciążenia

WriteLineIf(Boolean, Object, String)

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

WriteLineIf(Boolean, Object)

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

WriteLineIf(Boolean, String)

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

WriteLineIf(Boolean, String, String)

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

WriteLineIf(Boolean, Object, String)

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

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

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

Parametry

condition
Boolean

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

value
Object

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

category
String

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

Atrybuty

Przykłady

Poniższy przykład tworzy TraceSwitch o nazwie generalSwitch. Ten przełącznik jest ustawiony poza przykładem kodu.

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

Następnie, jeśli TraceLevel jest ustawiona na 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( Object^ myObject, String^ category )
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      #if defined(DEBUG)
      Debug::WriteIf(generalSwitch->TraceError, "Invalid object for category. ");
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceVerbose, myObject, 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 Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, "Invalid object for category. ");

    // Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, myObject, 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 Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, "Invalid object for category. ")
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, myObject, category)
End Sub

Uwagi

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

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

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

Uwagi dotyczące dziedziczenia

Można zminimalizować karę wydajności instrumentowania aplikacji przy użyciu instrukcji If...Then zamiast instrukcji WriteLineIf(Boolean, String). Następujące 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 ocenia false, nie wywołujesz WriteLine(String). Drugi przykład zawsze wywołuje WriteLineIf(Boolean, String), nawet jeśli mySwitch.TraceError jest false i nie są generowane żadne dane wyjściowe śledzenia. Może to spowodować niepotrzebne wykonanie arbitralnie złożonego kodu.

Pierwszy przykład:

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

Drugi przykład:

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

Zobacz też

Dotyczy

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

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

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

Parametry

condition
Boolean

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

message
Debug.WriteIfInterpolatedStringHandler

Wiadomość do zapisu.

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ą parametr String, to przeciążenie oblicza tylko wszystkie elementy formatowania ciągów interpolowanych, jeśli jest wymagany komunikat.

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

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

Zobacz też

Dotyczy

WriteLineIf(Boolean, Object)

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

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

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

Parametry

condition
Boolean

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

value
Object

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

Atrybuty

Przykłady

Poniższy przykład tworzy TraceSwitch o nazwie generalSwitch. Ten przełącznik jest ustawiony poza przykładem kodu.

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

Następnie, jeśli TraceLevel jest ustawiona na Verbose, przykład zwraca nazwę obiektu 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, "Invalid object. " );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceVerbose, myObject );
      #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, "Invalid object. ");

    // Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, myObject);
}
' 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, "Invalid object. ")
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, myObject)
End Sub

Uwagi

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

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

Uwagi dotyczące dziedziczenia

Można zminimalizować karę wydajności instrumentowania aplikacji przy użyciu instrukcji If...Then zamiast instrukcji WriteLineIf(Boolean, String). Następujące 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 ocenia false, nie wywołujesz WriteLine(String). Drugi przykład zawsze wywołuje WriteLineIf(Boolean, String), nawet jeśli mySwitch.TraceError jest false i nie są generowane żadne dane wyjściowe śledzenia. Może to spowodować niepotrzebne wykonanie arbitralnie złożonego kodu.

Pierwszy przykład:

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

Drugi przykład:

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

Zobacz też

Dotyczy

WriteLineIf(Boolean, String)

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

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

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

Parametry

condition
Boolean

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

message
String

Wiadomość do zapisu.

Atrybuty

Przykłady

Poniższy przykład tworzy TraceSwitch o nazwie generalSwitch. Ten przełącznik jest ustawiony poza przykładem kodu.

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

Następnie, jeśli TraceLevel jest ustawiona na 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::WriteLineIf( 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.WriteLineIf(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.WriteLineIf(generalSwitch.TraceVerbose, "My second error message.")
End Sub

Uwagi

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

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

Uwagi dotyczące dziedziczenia

Można zminimalizować karę wydajności instrumentowania aplikacji przy użyciu instrukcji If...Then zamiast instrukcji WriteLineIf(Boolean, String). Następujące 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 ocenia false, nie wywołujesz WriteLine(String). Drugi przykład zawsze wywołuje WriteLineIf(Boolean, String), nawet jeśli mySwitch.TraceError jest false i nie są generowane żadne dane wyjściowe śledzenia. Może to spowodować niepotrzebne wykonanie arbitralnie złożonego kodu.

Pierwszy przykład:

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

Drugi przykład:

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

Zobacz też

Dotyczy

WriteLineIf(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 kolekcji Listeners, jeśli określony warunek jest true.

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

Parametry

condition
Boolean

Wyrażenie warunkowe do obliczenia. Jeśli warunek jest true, komunikat i nazwa kategorii są zapisywane 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ą parametr String, to przeciążenie oblicza tylko wszystkie elementy formatowania ciągów interpolowanych, jeśli jest wymagany komunikat.

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

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

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

Zobacz też

Dotyczy

WriteLineIf(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 jest true.

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

Parametry

condition
Boolean

Wyrażenie warunkowe do obliczenia. Jeśli warunek jest true, komunikat i nazwa cateogry są zapisywane w odbiornikach śledzenia w kolekcji.

message
String

Wiadomość do zapisu.

category
String

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

Atrybuty

Przykłady

Poniższy przykład tworzy TraceSwitch o nazwie generalSwitch. Ten przełącznik jest ustawiony poza przykładem kodu.

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

Następnie, jeśli TraceLevel jest ustawiona na Verbose, przykład zwraca drugi komunikat o błędzie i category 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( String^ category )
   {
      // 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::WriteLineIf( generalSwitch->TraceVerbose, 
         "My second error message.", category );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
static TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static public void MyErrorMethod(string category)
{
    // 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.WriteLineIf(generalSwitch.TraceVerbose, "My second error message.", category);
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod(category As String)
    ' 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.WriteLineIf(generalSwitch.TraceVerbose, "My second error message.", category)
End Sub

Uwagi

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

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

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

Uwagi dotyczące dziedziczenia

Można zminimalizować karę wydajności instrumentowania aplikacji przy użyciu instrukcji If...Then zamiast instrukcji WriteLineIf(Boolean, String). Następujące 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 ocenia false, nie wywołujesz WriteLine(String). Drugi przykład zawsze wywołuje WriteLineIf(Boolean, String), nawet jeśli mySwitch.TraceError jest false i nie są generowane żadne dane wyjściowe śledzenia. Może to spowodować niepotrzebne wykonanie arbitralnie złożonego kodu.

Pierwszy przykład:

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

Drugi przykład:

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

Zobacz też

Dotyczy