Debug Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 true
olarak 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 |
Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
Bir koşulu denetler; koşul |
Assert(Boolean, String, String, Object[]) |
Bir koşulu denetler; koşul |
Assert(Boolean, String, String) |
Bir koşulu denetler; koşul |
Assert(Boolean, String) |
Bir koşulu denetler; koşul |
Assert(Boolean) |
Bir koşulu denetler; koşul |
Close() |
Çıkış arabelleği temizler ve Listenersher birinde |
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 |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
|
WriteIf(Boolean, Object, String) |
Bir koşul |
WriteIf(Boolean, Object) |
Bir koşul |
WriteIf(Boolean, String, String) |
Bir koşul |
WriteIf(Boolean, String) |
Bir koşul |
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 |
WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler) |
Belirtilen bir koşul |
WriteLineIf(Boolean, Object, String) |
Bir koşul |
WriteLineIf(Boolean, Object) |
Bir koşul |
WriteLineIf(Boolean, String, String) |
Bir koşul |
WriteLineIf(Boolean, String) |
Bir koşul |
Şunlara uygulanır
İş Parçacığı Güvenliği
Bu tür iş parçacığı güvenlidir.