Aracılığıyla paylaş


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 belirtmek için Debug kullanır. Örnek ayrıca izleme çıkışını ayırt etmek için Indent ve Unindent kullanır.

// 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 Debug sınıfındaki yöntemleri kullanarak hata ayıklama bilgilerini yazdırın ve onaylarla mantığınızı denetleyin.

Bu sınıf, bir Assert iletişim kutusunu görüntülemek ve her zaman başarısız olacak bir onay yaymak için yöntemler 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 Switch sınıfına ve İzleme Anahtarları makalesine bakın.

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

Not

Listeners koleksiyonuna izleme dinleyicisi eklemek, izleme dinleyicisi tarafından kullanılan bir kaynak kullanılamıyorsa 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 ve işlemek için try/catch bloklarda Debug yöntemlerine çağrılar yerleştirmek yararlı olabilir.

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

.NET Framework uygulamaları için uygulamanızın yapılandırma dosyasını düzenleyerek Debug için AutoFlush ve IndentSize ayarlayabilirsiniz. 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 Debugyöntemlerine uygulanır. ConditionalAttribute destekleyen derleyiciler, DEBUG koşullu derleme simgesi olarak tanımlanmadığı sürece bu yöntemlere yapılan çağrıları yoksayar. ConditionalAttribute desteklenip desteklenmediğini 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, varsayılan olarak, DEBUG koşullu derleme simgesi hata ayıklama derlemeleri için tanımlanır ve TRACE simgesi 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. Debug sınıfı (C++/CLI).

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

Özellikler

AutoFlush

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

IndentLevel

Girinti düzeyini alır veya ayarlar.

IndentSize

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

Listeners

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

Yöntemler

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

Bir koşulu denetler; koşul falseise, belirtilen bir iletinin çıktısını alır ve çağrı yığınını gösteren bir ileti kutusu görüntüler.

Assert(Boolean, Debug+AssertInterpolatedStringHandler)

Bir koşulu denetler; koşul falseise, belirtilen bir iletinin çıktısını alır ve çağrı yığınını gösteren bir ileti kutusu görüntüler.

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

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

Assert(Boolean, String, String)

Bir koşulu denetler; koşul falseise, 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)

Bir koşulu denetler; koşul falseise, belirtilen bir iletinin çıktısını alır ve çağrı yığınını gösteren bir ileti kutusu görüntüler.

Assert(Boolean)

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

Close()

Çıkış arabelleği temizler ve Listenersher birinde Close yöntemini çağırır.

Fail(String, String)

Bir hata iletisi ve ayrıntılı bir hata iletisi yayar.

Fail(String)

Belirtilen hata iletisini yayar.

Flush()

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

Indent()

Geçerli IndentLevel bir artırır.

Print(String, Object[])

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

Print(String)

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

Unindent()

Geçerli IndentLevel bir azaltır.

Write(Object, String)

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

Write(Object)

nesnenin ToString() yönteminin değerini Listeners koleksiyonundaki izleme dinleyicilerine yazar.

Write(String, String)

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

Write(String)

Listeners koleksiyonundaki izleme dinleyicilerine bir ileti yazar.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

condition trueise, Listeners koleksiyonundaki izleme dinleyicilerine bir kategori adı ve ileti yazar.

WriteIf(Boolean, Object, String)

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

WriteIf(Boolean, Object)

Bir koşul truenesnenin ToString() yönteminin değerini Listeners koleksiyonundaki izleme dinleyicilerine yazar.

WriteIf(Boolean, String, String)

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

WriteIf(Boolean, String)

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

WriteLine(Object, String)

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

WriteLine(Object)

nesnenin ToString() yönteminin değerini Listeners koleksiyonundaki izleme dinleyicilerine yazar.

WriteLine(String, Object[])

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

WriteLine(String, String)

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

WriteLine(String)

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

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

WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

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

WriteLineIf(Boolean, Object, String)

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

WriteLineIf(Boolean, Object)

Bir koşul truenesnenin ToString() yönteminin değerini Listeners koleksiyonundaki izleme dinleyicilerine yazar.

WriteLineIf(Boolean, String, String)

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

WriteLineIf(Boolean, String)

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

Şunlara uygulanır

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

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

Ayrıca bkz.