Debug.WriteIf Método

Definición

Escribe información sobre la depuración en los agentes de escucha de seguimiento de la colección de Listeners si una condición es true.

Sobrecargas

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Si condition es true, escribe un nombre de categoría y un mensaje en los agentes de escucha de seguimiento de la Listeners colección.

WriteIf(Boolean, Object)

Escribe el valor del método ToString() del objeto en los agentes de escucha de seguimiento de la colección Listeners si una condición es true.

WriteIf(Boolean, String)

Escribe un mensaje a los agentes de escucha de la colección Listeners si una condición es true.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Escribe un nombre de categoría y un mensaje en los agentes de escucha de seguimiento de la Listeners colección si una condición especificada es true.

WriteIf(Boolean, Object, String)

Escribe un nombre de categoría y el valor del método ToString() del objeto en los agentes de escucha en la colección Listeners si una condición es true.

WriteIf(Boolean, String, String)

Escribe un nombre de categoría y un mensaje a los agentes de escucha de la colección Listeners si una condición es true.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Si condition es true, escribe un nombre de categoría y un mensaje en los agentes de escucha de seguimiento de la Listeners colección.

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)

Parámetros

condition
Boolean

Expresión condicional que se va a evaluar. Si la condición es true, se escribe el valor en los agentes de escucha de seguimiento de la colección.

message
Debug.WriteIfInterpolatedStringHandler

Mensaje que se va a escribir si condition es true.

Atributos

Comentarios

Esta sobrecarga se introdujo en .NET 6 para mejorar el rendimiento. En comparación con las sobrecargas que toman un String parámetro, esta sobrecarga solo evalúa los elementos de formato de cadena interpolados si se requiere el mensaje.

De forma predeterminada, la salida se escribe en una instancia de DefaultTraceListener.

Use el category parámetro para agrupar mensajes de salida.

Este método llama al Write método del agente de escucha de seguimiento.

Consulte también

Se aplica a

WriteIf(Boolean, Object)

Escribe el valor del método ToString() del objeto en los agentes de escucha de seguimiento de la colección Listeners si una condición es 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)

Parámetros

condition
Boolean

Expresión condicional que se va a evaluar. Si la condición es true, se escribe el valor en los agentes de escucha de seguimiento de la colección.

value
Object

Objeto cuyo nombre se envía a Listeners.

Atributos

Ejemplos

En el ejemplo siguiente se crea un TraceSwitch objeto denominado generalSwitch. Este modificador se establece fuera del ejemplo de código.

Si el modificador se establece en o TraceLevel Error superior, el ejemplo genera el nombre del parámetro value en .Listeners Para obtener información sobre cómo agregar un agente de escucha a la Listeners colección, vea la TraceListenerCollection clase .

A continuación, si se establece Verboseen TraceLevel , el ejemplo genera un mensaje en la misma línea que el primer mensaje. Un terminador de línea sigue el segundo mensaje.

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

Comentarios

De forma predeterminada, la salida se escribe en una instancia de DefaultTraceListener.

Este método llama al Write método del agente de escucha de seguimiento.

Notas a los desarrolladores de herederos

Puede minimizar la penalización del rendimiento de instrumentar la aplicación mediante If...Then instrucciones en lugar de instrucciones using WriteIf(Boolean, String) . Los dos ejemplos de código siguientes envían el mismo mensaje de depuración. Sin embargo, el primer ejemplo es mucho más rápido cuando el seguimiento está desactivado, porque si mySwitch.TraceError se evalúa como false, no se llama a Write(String). El segundo ejemplo siempre llama a WriteIf(Boolean, String), incluso cuando mySwitch.TraceError es false y no se genera ninguna salida de seguimiento. Esto puede dar lugar a la ejecución innecesaria de código arbitrariomente complejo.

Primer ejemplo:

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

Segundo ejemplo:

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

Consulte también

Se aplica a

WriteIf(Boolean, String)

Escribe un mensaje a los agentes de escucha de la colección Listeners si una condición es 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)

Parámetros

condition
Boolean

Expresión condicional que se va a evaluar. Si la condición es true, se escribe el mensaje en los agentes de escucha de seguimiento de la colección.

message
String

Mensaje que se va a escribir.

Atributos

Ejemplos

En el ejemplo siguiente se crea un TraceSwitch objeto denominado generalSwitch. Este modificador se establece fuera del ejemplo de código.

Si el modificador se establece en o TraceLevel Error superior, el ejemplo genera el primer mensaje de error en .Listeners Para obtener información sobre cómo agregar un agente de escucha a la Listeners colección, vea la TraceListenerCollection clase .

A continuación, si se establece Verboseen TraceLevel , el ejemplo genera el segundo mensaje de error en la misma línea que el primer mensaje. Un terminador de línea sigue el segundo mensaje.

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

Comentarios

De forma predeterminada, la salida se escribe en una instancia de DefaultTraceListener.

Este método llama al Write método del agente de escucha de seguimiento.

Notas a los desarrolladores de herederos

Puede minimizar la penalización del rendimiento de instrumentar la aplicación mediante If...Then instrucciones en lugar de instrucciones using WriteIf(Boolean, String) . Los dos ejemplos de código siguientes envían el mismo mensaje de depuración. Sin embargo, el primer ejemplo es mucho más rápido cuando el seguimiento está desactivado, porque si mySwitch.TraceError se evalúa como false, no se llama a Write(String). El segundo ejemplo siempre llama a WriteIf(Boolean, String), incluso cuando mySwitch.TraceError es false y no se genera ninguna salida de seguimiento. Esto puede dar lugar a la ejecución innecesaria de código arbitrariomente complejo.

Primer ejemplo:

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

Segundo ejemplo:

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

Consulte también

Se aplica a

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Escribe un nombre de categoría y un mensaje en los agentes de escucha de seguimiento de la Listeners colección si una condición especificada es 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)

Parámetros

condition
Boolean

Expresión condicional que se va a evaluar. Si la condición es true, se escribe el mensaje en los agentes de escucha de seguimiento de la colección.

message
Debug.WriteIfInterpolatedStringHandler

Mensaje que se va a escribir.

category
String

Nombre de categoría usado para organizar el resultado.

Atributos

Comentarios

Esta sobrecarga se introdujo en .NET 6 para mejorar el rendimiento. En comparación con las sobrecargas que toman un String parámetro, esta sobrecarga solo evalúa los elementos de formato de cadena interpolados si se requiere el mensaje.

De forma predeterminada, la salida se escribe en una instancia de DefaultTraceListener.

Use el category parámetro para agrupar mensajes de salida.

Este método llama al Write método del agente de escucha de seguimiento.

Consulte también

Se aplica a

WriteIf(Boolean, Object, String)

Escribe un nombre de categoría y el valor del método ToString() del objeto en los agentes de escucha en la colección Listeners si una condición es 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)

Parámetros

condition
Boolean

Expresión condicional que se va a evaluar. Si la condición es true, el nombre de categoría y el valor se escriben en los agentes de escucha de seguimiento de la colección.

value
Object

Objeto cuyo nombre se envía a Listeners.

category
String

Nombre de categoría usado para organizar el resultado.

Atributos

Ejemplos

En el ejemplo siguiente se crea un TraceSwitch objeto denominado generalSwitch. Este modificador se establece fuera del ejemplo de código.

Si el modificador se establece TraceLevel Verboseen , el ejemplo genera el nombre de myObject y en category .Listeners Para obtener información sobre cómo agregar un agente de escucha a la Listeners colección, vea la TraceListenerCollection clase .

A continuación, si se establece Error en TraceLevel o superior, el ejemplo genera el segundo mensaje de error en la misma línea que el primer mensaje. Un terminador de línea sigue el segundo mensaje.

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

Comentarios

De forma predeterminada, la salida se escribe en una instancia de DefaultTraceListener.

El category parámetro se puede usar para agrupar mensajes de salida.

Este método llama al Write método del agente de escucha de seguimiento.

Notas a los desarrolladores de herederos

Puede minimizar la penalización del rendimiento de instrumentar la aplicación mediante instrucciones en If...Then lugar de usar WriteIf(Boolean, String) instrucciones . Los dos ejemplos de código siguientes envían el mismo mensaje de depuración. Sin embargo, el primer ejemplo es mucho más rápido cuando el seguimiento está desactivado, ya que si mySwitch.TraceError se evalúa como , no se llama a falseWrite(String). El segundo ejemplo siempre llama a WriteIf(Boolean, String), incluso cuando mySwitch.TraceError es false y no se genera ninguna salida de seguimiento. Esto puede dar lugar a una ejecución innecesaria de código arbitrariomente complejo.

Primer ejemplo:

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

Segundo ejemplo:

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

Consulte también

Se aplica a

WriteIf(Boolean, String, String)

Escribe un nombre de categoría y un mensaje a los agentes de escucha de la colección Listeners si una condición es 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)

Parámetros

condition
Boolean

Expresión condicional que se va a evaluar. Si la condición es true, el nombre de categoría y el mensaje se escriben en los agentes de escucha de seguimiento de la colección.

message
String

Mensaje que se va a escribir.

category
String

Nombre de categoría usado para organizar el resultado.

Atributos

Ejemplos

En el ejemplo siguiente se crea un TraceSwitch objeto denominado generalSwitch. Este modificador se establece fuera del ejemplo de código.

Si el modificador se establece en TraceLevel Verbose, el ejemplo genera el primer mensaje de error en .Listeners Para obtener información sobre cómo agregar un agente de escucha a la Listeners colección, vea la TraceListenerCollection clase .

A continuación, si se establece Error en TraceLevel o superior, el ejemplo genera el segundo mensaje de error en la misma línea que el primer mensaje. Un terminador de línea sigue el segundo mensaje.

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

Comentarios

De forma predeterminada, la salida se escribe en una instancia de DefaultTraceListener.

El category parámetro se puede usar para agrupar mensajes de salida.

Este método llama al TraceListener.Write método del agente de escucha de seguimiento.

Notas a los desarrolladores de herederos

Puede minimizar la penalización del rendimiento de instrumentar la aplicación mediante instrucciones en If...Then lugar de usar WriteIf(Boolean, String) instrucciones . Los dos ejemplos de código siguientes envían el mismo mensaje de depuración. Sin embargo, el primer ejemplo es mucho más rápido cuando el seguimiento está desactivado, ya que si mySwitch.TraceError se evalúa como , no se llama a falseWrite(String). El segundo ejemplo siempre llama a WriteIf(Boolean, String), incluso cuando mySwitch.TraceError es false y no se genera ninguna salida de seguimiento. Esto puede dar lugar a una ejecución innecesaria de código arbitrariomente complejo.

Primer ejemplo:

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

Segundo ejemplo:

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

Consulte también

Se aplica a