Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Debug.WriteLineIf-Methode (Boolean, Object, String)

Aktualisiert: November 2007

Schreibt einen Kategorienamen und den Wert der ToString-Methode des Objekts in die Ablaufverfolgungsüberwachungen in der Listeners-Auflistung, wenn eine Bedingung true ist.

Namespace:  System.Diagnostics
Assembly:  System (in System.dll)

[ConditionalAttribute("DEBUG")]
public static void WriteLineIf(
	bool condition,
	Object value,
	string category
)
/** @attribute ConditionalAttribute("DEBUG") */
public static void WriteLineIf(
	boolean condition,
	Object value,
	String category
)
public static function WriteLineIf(
	condition : boolean, 
	value : Object, 
	category : String
)

Parameter

condition
Typ: System.Boolean
true, damit eine Meldung geschrieben wird, andernfalls false.
value
Typ: System.Object
Ein Objekt, dessen Name an die Listeners gesendet wird.
category
Typ: System.String
Ein Kategoriename für die Anordnung der Ausgabe.

In der Standardeinstellung wird die Ausgabe in eine Instanz von DefaultTraceListener geschrieben.

Der category-Parameter kann zum Gruppieren von Ausgabemeldungen verwendet werden.

Diese Methode ruft die WriteLine-Methode der Ablaufverfolgungsüberwachung auf.

Hinweise zur Implementierung:

Sie können die Leistungseinbußen durch das Instrumentieren der Anwendung verringern, indem Sie If...Then-Anweisungen anstelle von WriteLineIf-Anweisungen verwenden. In den folgenden beiden Codebeispielen wird dieselbe Debugmeldung gesendet. Das erste Beispiel wird bei deaktivierter Ablaufverfolgung jedoch schneller ausgeführt, da WriteLine nicht aufgerufen wird, wenn mySwitch.TraceError den Wert false hat. Im zweiten Beispiel wird immer WriteLineIf aufgerufen, auch wenn mySwitch.TraceError den Wert false hat und keine Ablaufverfolgungsausgabe erstellt wird. Dies kann zu unnötiger Ausführung von Code mit willkürlicher Komplexität führen.

Erstes Beispiel.

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

Zweites Beispiel.

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

Im folgenden Beispiel wird ein TraceSwitch mit dem Namen generalSwitch erstellt. Dieser Schalter wird außerhalb des Codebeispiels festgelegt.

Wenn der Schalter auf TraceLevelError oder höher festgelegt ist, wird im Beispiel die erste Fehlermeldung an die Listeners ausgegeben. Informationen über das Hinzufügen eines Listeners zur Listeners-Auflistung finden Sie unter der TraceListenerCollection-Klasse.

Wenn TraceLevel auf Verbose festgelegt ist, wird in dem Beispiel anschließend die zweite Fehlermeldung in derselben Zeile wie die erste Meldung ausgegeben. Nach der zweiten Meldung wird ein Zeilenabschluss eingefügt.

// 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 static TraceSwitch generalSwitch = 
    new 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.
    Debug.WriteIf(generalSwitch.get_TraceError(), 
        "Invalid object for category. ");

    // Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.get_TraceVerbose(), myObject, category);
} //MyErrorMethod


// Create a TraceSwitch.
static var generalSwitch : TraceSwitch = 
   new TraceSwitch("General", "Entire Application")    

static public function MyErrorMethod(
   myObject : Object, category : String)
{
   @if(@DEBUG)
   // 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
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile für Smartphone, Windows Mobile für Pocket PC, Xbox 360

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 3.5, 2.0, 1.0

XNA Framework

Unterstützt in: 2.0, 1.0
Anzeigen: