Debug.WriteIf Methode

Definition

Schreibt Informationen über das Debuggen in die Ablaufverfolgungsüberwachungen in der Listeners-Auflistung, wenn eine Bedingung true ist.

Überlädt

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Wenn condition ist true, schreibt einen Kategorienamen und eine Nachricht in die Ablaufverfolgungslistener in der Listeners Auflistung.

WriteIf(Boolean, Object)

Schreibt den Wert der ToString()-Methode des Objekts in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

WriteIf(Boolean, String)

Schreibt eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Schreibt einen Kategorienamen und eine Nachricht in die Ablaufverfolgungslistener in der Listeners Auflistung, wenn eine angegebene Bedingung lautet true.

WriteIf(Boolean, Object, String)

Schreibt einen Kategorienamen und den Wert der ToString()-Methode des Objekts in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

WriteIf(Boolean, String, String)

Schreibt einen Kategorienamen und eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Wenn condition ist true, schreibt einen Kategorienamen und eine Nachricht in die Ablaufverfolgungslistener in der Listeners Auflistung.

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)

Parameter

condition
Boolean

Der auszuwertende bedingte Ausdruck. Wenn die Bedingung true ist, wird der Wert in die Ablaufverfolgungslistener in der Auflistung geschrieben.

message
Debug.WriteIfInterpolatedStringHandler

Die Nachricht, die geschrieben werden soll, wenn condition es sich um true.

Attribute

Hinweise

Diese Überladung wurde in .NET 6 eingeführt, um die Leistung zu verbessern. Im Vergleich zu den Überladungen, die einen String Parameter übernehmen, ausgewertet diese Überladung nur alle interpolierten Zeichenfolgenformatierungselemente, wenn die Nachricht erforderlich ist.

Standardmäßig wird die Ausgabe in eine Instanz von DefaultTraceListener.

Verwenden Sie den category Parameter, um Ausgabemeldungen zu gruppieren.

Diese Methode ruft die Write Methode des Ablaufverfolgungslisteners auf.

Siehe auch

Gilt für:

WriteIf(Boolean, Object)

Schreibt den Wert der ToString()-Methode des Objekts in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

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)

Parameter

condition
Boolean

Der auszuwertende bedingte Ausdruck. Wenn die Bedingung true ist, wird der Wert in die Ablaufverfolgungslistener in der Auflistung geschrieben.

value
Object

Ein Objekt, dessen Name an die Listeners gesendet wird.

Attribute

Beispiele

Im folgenden Beispiel wird ein benannter TraceSwitch generalSwitchName erstellt. Dieser Schalter wird außerhalb des Codebeispiels festgelegt.

Wenn der Schalter auf den TraceLevel Error oder höher festgelegt ist, gibt das Beispiel den Vornamen des Wertparameters in den Listeners. Informationen zum Hinzufügen eines Listeners zur Listeners Auflistung finden Sie in der TraceListenerCollection Klasse.

Wenn der TraceLevel Wert auf "" festgelegt Verboseist, gibt das Beispiel eine Nachricht in derselben Zeile wie die erste Nachricht aus. Ein Zeilenterminator folgt der zweiten Nachricht.

   // 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

Hinweise

Standardmäßig wird die Ausgabe in eine Instanz von DefaultTraceListener.

Diese Methode ruft die Write Methode des Ablaufverfolgungslisteners auf.

Hinweise für Vererber

Sie können die Leistungsstrafe der Instrumentierung Ihrer Anwendung minimieren, indem If...Then Sie Anweisungen anstelle von Anweisungen verwenden WriteIf(Boolean, String) . In den folgenden beiden Codebeispielen wird dieselbe Debugnachricht gesendet. Das erste Beispiel ist jedoch viel schneller, wenn die Ablaufverfolgung deaktiviert ist, da mySwitch.TraceError ausgewertet wird false, sie nicht aufrufen Write(String). Das zweite Beispiel ruft immer auf WriteIf(Boolean, String), auch wenn mySwitch.TraceError ist false und keine Ablaufverfolgungsausgabe erstellt wird. Dies kann zu unnötiger Ausführung von willkürlich komplexem Code führen.

Erstes Beispiel:

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

Zweites Beispiel:

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

Siehe auch

Gilt für:

WriteIf(Boolean, String)

Schreibt eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

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)

Parameter

condition
Boolean

Der auszuwertende bedingte Ausdruck. Wenn die Bedingung true ist, wird die Meldung in die Ablaufverfolgungslistener in der Auflistung geschrieben.

message
String

Eine zu schreibende Meldung.

Attribute

Beispiele

Im folgenden Beispiel wird ein benannter TraceSwitch generalSwitchName erstellt. Dieser Schalter wird außerhalb des Codebeispiels festgelegt.

Wenn der Schalter auf den TraceLevel Error oder höher festgelegt ist, gibt das Beispiel die erste Fehlermeldung in die Listeners. Informationen zum Hinzufügen eines Listeners zur Listeners Auflistung finden Sie in der TraceListenerCollection Klasse.

Wenn dies TraceLevel auf Verbose"festgelegt" ist, gibt das Beispiel die zweite Fehlermeldung in derselben Zeile wie die erste Nachricht aus. Ein Zeilenterminator folgt der zweiten Nachricht.

   // 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

Hinweise

Standardmäßig wird die Ausgabe in eine Instanz von DefaultTraceListener.

Diese Methode ruft die Write Methode des Ablaufverfolgungslisteners auf.

Hinweise für Vererber

Sie können die Leistungsstrafe der Instrumentierung Ihrer Anwendung minimieren, indem If...Then Sie Anweisungen anstelle von Anweisungen verwenden WriteIf(Boolean, String) . In den folgenden beiden Codebeispielen wird dieselbe Debugnachricht gesendet. Das erste Beispiel ist jedoch viel schneller, wenn die Ablaufverfolgung deaktiviert ist, da mySwitch.TraceError ausgewertet wird false, sie nicht aufrufen Write(String). Das zweite Beispiel ruft immer auf WriteIf(Boolean, String), auch wenn mySwitch.TraceError ist false und keine Ablaufverfolgungsausgabe erstellt wird. Dies kann zu unnötiger Ausführung von willkürlich komplexem Code führen.

Erstes Beispiel:

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

Zweites Beispiel:

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

Siehe auch

Gilt für:

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Schreibt einen Kategorienamen und eine Nachricht in die Ablaufverfolgungslistener in der Listeners Auflistung, wenn eine angegebene Bedingung lautet 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)

Parameter

condition
Boolean

Der auszuwertende bedingte Ausdruck. Wenn die Bedingung true ist, wird die Meldung in die Ablaufverfolgungslistener in der Auflistung geschrieben.

message
Debug.WriteIfInterpolatedStringHandler

Die zu schreibende Meldung.

category
String

Ein Kategoriename für die Anordnung der Ausgabe.

Attribute

Hinweise

Diese Überladung wurde in .NET 6 eingeführt, um die Leistung zu verbessern. Im Vergleich zu den Überladungen, die einen String Parameter übernehmen, ausgewertet diese Überladung nur alle interpolierten Zeichenfolgenformatierungselemente, wenn die Nachricht erforderlich ist.

Standardmäßig wird die Ausgabe in eine Instanz von DefaultTraceListener.

Verwenden Sie den category Parameter, um Ausgabemeldungen zu gruppieren.

Diese Methode ruft die Write Methode des Ablaufverfolgungslisteners auf.

Siehe auch

Gilt für:

WriteIf(Boolean, Object, String)

Schreibt einen Kategorienamen und den Wert der ToString()-Methode des Objekts in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

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)

Parameter

condition
Boolean

Der auszuwertende bedingte Ausdruck. Wenn die Bedingung true ist, werden der Kategoriename und der Wert in die Ablaufverfolgungslistener in der Auflistung geschrieben.

value
Object

Ein Objekt, dessen Name an die Listeners gesendet wird.

category
String

Ein Kategoriename für die Anordnung der Ausgabe.

Attribute

Beispiele

Im folgenden Beispiel wird ein benannter TraceSwitch generalSwitchName erstellt. Dieser Schalter wird außerhalb des Codebeispiels festgelegt.

Wenn der Schalter auf den TraceLevel VerboseSchalter festgelegt ist, gibt das Beispiel den Namen des myObject und der category an.Listeners Informationen zum Hinzufügen eines Listeners zur Listeners Auflistung finden Sie in der TraceListenerCollection Klasse.

Wenn dies TraceLevel auf Error oder höher festgelegt ist, gibt das Beispiel die zweite Fehlermeldung in derselben Zeile wie die erste Nachricht aus. Ein Zeilenterminator folgt der zweiten Nachricht.

   // 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

Hinweise

Standardmäßig wird die Ausgabe in eine Instanz von DefaultTraceListener.

Der category Parameter kann zum Gruppieren von Ausgabenachrichten verwendet werden.

Diese Methode ruft die Write Methode des Ablaufverfolgungslisteners auf.

Hinweise für Vererber

Sie können die Leistungsstrafe für die Instrumentierung Ihrer Anwendung minimieren, indem Sie Anweisungen anstelle von Anweisungen verwenden If...Then WriteIf(Boolean, String) . Die folgenden beiden Codebeispiele senden dieselbe Debugnachricht. Das erste Beispiel ist jedoch viel schneller, wenn die Ablaufverfolgung deaktiviert ist, da mySwitch.TraceError ausgewertet wird false, sie nicht aufrufen Write(String). Das zweite Beispiel ruft WriteIf(Boolean, String)immer auf, auch wenn mySwitch.TraceError ist false und keine Ablaufverfolgungsausgabe erzeugt wird. Dies kann zu einer unnötigen Ausführung von willkürlich komplexem Code führen.

Erstes Beispiel:

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

Zweites Beispiel:

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

Siehe auch

Gilt für:

WriteIf(Boolean, String, String)

Schreibt einen Kategorienamen und eine Meldung in die Ablaufverfolgungslistener in der Listeners-Auflistung, wenn eine Bedingung true ist.

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)

Parameter

condition
Boolean

Der auszuwertende bedingte Ausdruck. Wenn die Bedingung true ist, werden der Kategoriename und die Meldung in die Ablaufverfolgungslistener in der Auflistung geschrieben.

message
String

Eine zu schreibende Meldung.

category
String

Ein Kategoriename für die Anordnung der Ausgabe.

Attribute

Beispiele

Im folgenden Beispiel wird ein benannter TraceSwitch Name generalSwitcherstellt. Dieser Schalter wird außerhalb des Codebeispiels festgelegt.

Wenn der Schalter auf den TraceLevel VerboseSchalter festgelegt ist, gibt das Beispiel die erste Fehlermeldung an die Listeners. Informationen zum Hinzufügen eines Listeners zur Auflistung finden Sie in der Listeners TraceListenerCollection Klasse.

Wenn TraceLevel das Beispiel auf Error oder höher festgelegt ist, gibt das Beispiel die zweite Fehlermeldung in derselben Zeile wie die erste Nachricht aus. Ein Zeilenterminator folgt der zweiten Nachricht.

   // 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

Hinweise

Standardmäßig wird die Ausgabe in eine Instanz von DefaultTraceListener.

Der category Parameter kann zum Gruppieren von Ausgabenachrichten verwendet werden.

Diese Methode ruft die TraceListener.Write Methode des Ablaufverfolgungslisteners auf.

Hinweise für Vererber

Sie können die Leistungsstrafe für die Instrumentierung Ihrer Anwendung minimieren, indem Sie Anweisungen anstelle von Anweisungen verwenden If...Then WriteIf(Boolean, String) . Die folgenden beiden Codebeispiele senden dieselbe Debugnachricht. Das erste Beispiel ist jedoch viel schneller, wenn die Ablaufverfolgung deaktiviert ist, da mySwitch.TraceError ausgewertet wird false, sie nicht aufrufen Write(String). Das zweite Beispiel ruft WriteIf(Boolean, String)immer auf, auch wenn mySwitch.TraceError ist false und keine Ablaufverfolgungsausgabe erzeugt wird. Dies kann zu einer unnötigen Ausführung von willkürlich komplexem Code führen.

Erstes Beispiel:

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

Zweites Beispiel:

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

Siehe auch

Gilt für: