Debug Sınıf

Tanım

Kodunuzun hatalarını ayıklamaya yardımcı olan bir dizi yöntem ve özellik sağlar.

public ref class Debug abstract sealed
public ref class Debug sealed
public static class Debug
public sealed class Debug
type Debug = class
Public Class Debug
Public NotInheritable Class Debug
Devralma
Debug

Örnekler

Aşağıdaki örnek, bir programın yürütülmesinin başlangıcını ve sonunu göstermek için kullanır Debug . Örnek ayrıca izleme çıkışını ayırt etmek için ve Unindent kullanırIndent.

// Specify /DDEBUG when compiling.

#using <System.dll>
using namespace System;
using namespace System::Diagnostics;

int main( void )
{
   #if defined(DEBUG)
   Debug::Listeners->Add( gcnew TextWriterTraceListener( Console::Out ) );
   Debug::AutoFlush = true;
   Debug::Indent();
   Debug::WriteLine( "Entering Main" );
   #endif
   Console::WriteLine( "Hello World." );
   #if defined(DEBUG)
   Debug::WriteLine( "Exiting Main" );
   Debug::Unindent();
   #endif
   return 0;
}
// Specify /d:DEBUG when compiling.

using System;
using System.Data;
using System.Diagnostics;

class Test
{
    static void Main()
    {
       Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
       Debug.AutoFlush = true;
       Debug.Indent();
       Debug.WriteLine("Entering Main");
       Console.WriteLine("Hello World.");
       Debug.WriteLine("Exiting Main");
       Debug.Unindent();
    }
}
' Specify /d:DEBUG=True when compiling.

Imports System.Data
Imports System.Diagnostics

Class Test

    Shared Sub Main()
    
        Debug.Listeners.Add(New TextWriterTraceListener(Console.Out))
        Debug.AutoFlush = True
        Debug.Indent()
        Debug.WriteLine("Entering Main")
        Console.WriteLine("Hello World.")
        Debug.WriteLine("Exiting Main")
        Debug.Unindent()
        
    End Sub
    
End Class

Açıklamalar

Sevkiyat ürününüzün performansını ve kod boyutunu etkilemeden kodunuzu daha sağlam hale getirmek için sınıftaki Debug yöntemleri kullanarak hata ayıklama bilgilerini yazdırın ve onaylarla mantığınızı denetleyin.

Bu sınıf, bir Assert iletişim kutusu görüntüleme ve her zaman başarısız olacak bir onay yayma yöntemleri sağlar. Bu sınıf aşağıdaki çeşitlemelerde yazma yöntemleri sağlar:

BooleanSwitch ve TraceSwitch sınıfları, izleme çıkışını dinamik olarak denetlemek için araçlar sağlar. .NET Framework uygulamalar için, uygulamanızı yeniden derlemeden bu anahtarların değerlerini değiştirebilirsiniz. .NET Framework uygulamalarında anahtar ayarlamak için yapılandırma dosyasını kullanma hakkında bilgi için sınıfına Switch ve İzleme Anahtarları makalesine bakın.

Koleksiyona örnekler ekleyerek TraceListener veya koleksiyondan örnekleri kaldırarak izleme çıkışının hedefini Listeners özelleştirebilirsiniz. Koleksiyon Listeners hem hem de Debug Trace sınıfları tarafından paylaşılır; iki sınıfa da izleme dinleyicisi eklemek dinleyiciyi her ikisine de ekler. Sınıfı varsayılan DefaultTraceListener olarak izleme çıkışı yayar.

Not

İzleme dinleyicisi Listeners tarafından kullanılan bir kaynak kullanılamıyorsa, koleksiyona izleme dinleyicisi eklemek izleme sırasında bir özel durum oluşturmasına neden olabilir. Oluşan koşullar ve özel durum izleme dinleyicisine bağlıdır ve bu makalede numaralandırılamaz. İzleme dinleyicilerinden gelen özel durumları algılamak Debug ve işlemek için bloklardaki try/catch yöntemlere çağrı yapmak yararlı olabilir.

yöntemini veya IndentLevel özelliğini kullanarak Indent girinti düzeyini değiştirebilirsiniz. Girinti aralığını değiştirmek için özelliğini kullanın IndentSize . özelliğini trueolarak ayarlayarak her yazmadan sonra çıkış arabelleğinin AutoFlush otomatik olarak boşaltılıp boşaltılmayacağını belirtebilirsiniz.

.NET Framework uygulamalar için, uygulamanızın AutoFlush yapılandırma dosyasını düzenleyerek ve IndentSize değerini ayarlayabilirsiniz.Debug Yapılandırma dosyası aşağıdaki örnekte gösterildiği gibi biçimlendirilmelidir.

<configuration>
  <system.diagnostics>
    <trace autoflush="true" indentsize="7" />
  </system.diagnostics>
</configuration>

ConditionalAttribute özniteliği, yöntemlerine Debuguygulanır. Destekleyen derleyiciler ConditionalAttribute , koşullu derleme simgesi olarak tanımlanmadığı sürece DEBUG bu yöntemlere yapılan çağrıları yoksayar. Desteklenip desteklenmediğini ConditionalAttribute ve koşullu derleme simgesi tanımlama söz dizimini belirlemek için derleyicinin belgelerine bakın.

Not

Visual Studio C# ve Visual Basic projelerinde, koşullu derleme simgesi varsayılan olarak DEBUG hata ayıklama derlemeleri için tanımlanır ve TRACE simge hem hata ayıklama hem de yayın derlemeleri için tanımlanır. Visual C++'da koşullu hata ayıklama hakkında bilgi için bkz. Hata ayıklama sınıfı (C++/CLI).

C# dilinde koşullu derleme simgesini tanımlamak DEBUG için, kodunuzu bir komut satırı kullanarak derlerken derleyici komut satırına seçeneğini ekleyin /d:DEBUG veya dosyanızın en üstüne ekleyin #define DEBUG . Visual Basic'da seçeneğini /d:DEBUG=True derleyici komut satırına ekleyin veya dosyaya ekleyin#Const DEBUG=True.

Özellikler

AutoFlush

Her yazmadan sonra üzerinde Listeners çağrılıp çağrılmayacağını Flush() belirten bir değer alır veya ayarlar.

IndentLevel

Girinti düzeyini alır veya ayarlar.

IndentSize

Girintideki boşlukların sayısını alır veya ayarlar.

Listeners

Hata ayıklama çıkışını izleyen dinleyici koleksiyonunu alır.

Yöntemler

Assert(Boolean)

Koşulu denetler; koşul ise false, çağrı yığınını gösteren bir ileti kutusu görüntüler.

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

Koşulu denetler; koşul ise false, belirtilen bir iletinin çıkışını alır ve çağrı yığınını gösteren bir ileti kutusu görüntüler.

Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler)

Koşulu denetler; koşul ise false, belirtilen bir iletinin çıkışını alır ve çağrı yığınını gösteren bir ileti kutusu görüntüler.

Assert(Boolean, String)

Koşulu denetler; koşul ise false, belirtilen bir iletinin çıkışını alır ve çağrı yığınını gösteren bir ileti kutusu görüntüler.

Assert(Boolean, String, String)

Koşulu denetler; koşul ise false, belirtilen iki iletinin çıkışını alır ve çağrı yığınını gösteren bir ileti kutusu görüntüler.

Assert(Boolean, String, String, Object[])

Koşulu denetler; koşul ise false, iki ileti (basit ve biçimlendirilmiş) çıkışı alır ve çağrı yığınını gösteren bir ileti kutusu görüntüler.

Close()

Çıkış arabelleği temizler ve ardından her birinde Listenersyöntemini çağırırClose.

Fail(String)

Belirtilen hata iletisini yayar.

Fail(String, String)

Bir hata iletisi ve ayrıntılı bir hata iletisi görüntüler.

Flush()

Çıkış arabelleği temizler ve arabelleğe alınan verilerin koleksiyona yazmasına Listeners neden olur.

Indent()

Geçerli IndentLevel olanı bir artırır.

Print(String)

Koleksiyondaki Listeners izleme dinleyicilerine bir ileti ve ardından bir satır sonlandırıcı yazar.

Print(String, Object[])

Koleksiyondaki Listeners izleme dinleyicilerine biçimlendirilmiş bir dize ve ardından bir satır sonlandırıcı yazar.

Unindent()

Geçerli IndentLevel olanı bir azaltır.

Write(Object)

Nesnesinin ToString() yönteminin değerini koleksiyondaki Listeners izleme dinleyicilerine yazar.

Write(Object, String)

Koleksiyondaki izleme dinleyicilerine bir kategori adı ve nesnenin ToString() yönteminin Listeners değerini yazar.

Write(String)

Koleksiyondaki izleme dinleyicilerine Listeners bir ileti yazar.

Write(String, String)

Koleksiyondaki Listeners izleme dinleyicilerine bir kategori adı ve ileti yazar.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

ise condition true, koleksiyondaki Listeners izleme dinleyicilerine bir kategori adı ve ileti yazar.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Belirtilen koşul trueise, koleksiyondaki Listeners izleme dinleyicilerine bir kategori adı ve ileti yazar.

WriteIf(Boolean, Object)

Bir koşul trueise, nesnesinin ToString() yönteminin değerini koleksiyondaki Listeners izleme dinleyicilerine yazar.

WriteIf(Boolean, Object, String)

Bir koşul trueise, koleksiyondaki izleme dinleyicilerine bir kategori adı ve nesnenin ToString() yönteminin Listeners değerini yazar.

WriteIf(Boolean, String)

Bir koşul trueise, koleksiyondaki Listeners izleme dinleyicilerine bir ileti yazar.

WriteIf(Boolean, String, String)

Koşul trueise, koleksiyondaki Listeners izleme dinleyicilerine bir kategori adı ve ileti yazar.

WriteLine(Object)

Nesnesinin ToString() yönteminin değerini koleksiyondaki Listeners izleme dinleyicilerine yazar.

WriteLine(Object, String)

Koleksiyondaki izleme dinleyicilerine bir kategori adı ve nesnenin ToString() yönteminin Listeners değerini yazar.

WriteLine(String)

Koleksiyondaki Listeners izleme dinleyicilerine bir ileti ve ardından bir satır sonlandırıcı yazar.

WriteLine(String, Object[])

Biçimlendirilmiş bir ileti ve ardından koleksiyondaki Listeners izleme dinleyicilerine bir satır sonlandırıcı yazar.

WriteLine(String, String)

Koleksiyondaki Listeners izleme dinleyicilerine bir kategori adı ve ileti yazar.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Belirtilen koşul trueise, koleksiyondaki Listeners izleme dinleyicilerine bir ileti yazar.

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Belirtilen koşul trueise, koleksiyondaki Listeners izleme dinleyicilerine bir kategori adı ve ileti yazar.

WriteLineIf(Boolean, Object)

Bir koşul trueise, nesnesinin ToString() yönteminin değerini koleksiyondaki Listeners izleme dinleyicilerine yazar.

WriteLineIf(Boolean, Object, String)

Bir koşul trueise, koleksiyondaki izleme dinleyicilerine bir kategori adı ve nesnenin ToString() yönteminin Listeners değerini yazar.

WriteLineIf(Boolean, String)

Bir koşul trueise, koleksiyondaki Listeners izleme dinleyicilerine bir ileti yazar.

WriteLineIf(Boolean, String, String)

Bir koşul trueise, koleksiyondaki Listeners izleme dinleyicilerine bir kategori adı ve ileti yazar.

Şunlara uygulanır

İş Parçacığı Güvenliği

Bu güvenli iş parçacığı türüdür.

Ayrıca bkz.