Debug.WriteIf Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Zapisuje informacje o debugowaniu do odbiorników śledzenia w kolekcji Listeners, jeśli warunek jest true
.
Przeciążenia
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Jeśli |
WriteIf(Boolean, Object) |
Zapisuje wartość metody ToString() obiektu do odbiorników śledzenia w kolekcji Listeners, jeśli warunek jest |
WriteIf(Boolean, String) |
Zapisuje komunikat do odbiorników śledzenia w kolekcji Listeners, jeśli warunek jest |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners, jeśli określony warunek jest |
WriteIf(Boolean, Object, String) |
Zapisuje nazwę kategorii i wartość metody ToString() obiektu do odbiorników śledzenia w kolekcji Listeners, jeśli warunek jest |
WriteIf(Boolean, String, String) |
Zapisuje nazwę kategorii i komunikat do odbiorników śledzenia w kolekcji Listeners, jeśli warunek jest |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)
- Źródło:
- Debug.cs
- Źródło:
- Debug.cs
- Źródło:
- Debug.cs
Jeśli condition
jest true
, 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 jest true
, wartość jest zapisywana w odbiornikach śledzenia w kolekcji.
Komunikat do zapisu, jeśli condition
jest 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ą 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.
Użyj parametru category
, aby zgrupować komunikaty wyjściowe.
Ta metoda wywołuje metodę Write odbiornika śledzenia.
Zobacz też
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
Dotyczy
WriteIf(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 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 jest true
, wartość jest zapisywana w odbiornikach śledzenia w kolekcji.
- 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 pierwszą nazwę parametru wartości na 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 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 DefaultTraceListener.
Ta metoda wywołuje metodę Write odbiornika śledzenia.
Uwagi dotyczące dziedziczenia
Można zminimalizować karę wydajności instrumentowania aplikacji przy użyciu instrukcji If...Then
zamiast instrukcji WriteIf(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 Write(String). Drugi przykład zawsze wywołuje WriteIf(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.Write("aNumber = " + aNumber + " out of range");
Drugi przykład:
Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
Zobacz też
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
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 kolekcji Listeners, jeśli warunek jest 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 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::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 DefaultTraceListener.
Ta metoda wywołuje metodę Write odbiornika śledzenia.
Uwagi dotyczące dziedziczenia
Można zminimalizować karę wydajności instrumentowania aplikacji przy użyciu instrukcji If...Then
zamiast instrukcji WriteIf(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 Write(String). Drugi przykład zawsze wywołuje WriteIf(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.Write("aNumber = " + aNumber + " out of range");
Drugi przykład:
Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
Zobacz też
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
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 kolekcji Listeners, jeśli określony warunek jest 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 jest true
, komunikat jest zapisywany w odbiornikach śledzenia w kolekcji.
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.
Użyj parametru category
, aby zgrupować komunikaty wyjściowe.
Ta metoda wywołuje metodę Write odbiornika śledzenia.
Zobacz też
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
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 ToString() obiektu do odbiorników śledzenia w kolekcji Listeners, jeśli warunek jest 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 jest true
, nazwa kategorii i wartość są zapisywane w odbiornikach śledzenia w kolekcji.
- 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 TraceLevelVerbose
, przykład zwraca nazwę myObject
i category
do Listeners. Aby uzyskać informacje na temat dodawania odbiornika do kolekcji Listeners, zobacz klasę TraceListenerCollection.
Następnie, jeśli TraceLevel jest ustawiona na Error
lub wyższą, 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 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ć karę wydajności instrumentowania aplikacji przy użyciu instrukcji If...Then
zamiast instrukcji WriteIf(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 Write(String). Drugi przykład zawsze wywołuje WriteIf(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.Write("aNumber = " + aNumber + " out of range");
Drugi przykład:
Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
Zobacz też
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute
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 jest 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 obliczenia. Jeśli warunek jest true
, nazwa kategorii i komunikat 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 TraceLevelVerbose
, 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 Error
lub wyższą, 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, 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 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ć karę wydajności instrumentowania aplikacji przy użyciu instrukcji If...Then
zamiast instrukcji WriteIf(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 Write(String). Drugi przykład zawsze wywołuje WriteIf(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.Write("aNumber = " + aNumber + " out of range");
Drugi przykład:
Debug.WriteIf(mySwitch.TraceError, "aNumber = " + aNumber + " out of range");
Zobacz też
- Debug
- Trace
- BooleanSwitch
- TraceSwitch
- TraceListener
- DefaultTraceListener
- ConsoleTraceListener
- ConditionalAttribute