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.
Kodunuzdaki hataları ayıklamanıza 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 DebugTrace 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 ve işlemek için bloklardaki try
/catch
yöntemlere çağrı Debug 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 true
olarak 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'te 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 |
Assert(Boolean, Debug+AssertInterpolatedStringHandler) |
Koşulu denetler; koşul ise |
Assert(Boolean, Debug+AssertInterpolatedStringHandler, Debug+AssertInterpolatedStringHandler) |
Koşulu denetler; koşul ise |
Assert(Boolean, String) |
Koşulu denetler; koşul ise |
Assert(Boolean, String, String) |
Koşulu denetler; koşul ise |
Assert(Boolean, String, String, Object[]) |
Koşulu denetler; koşul ise |
Close() |
Çıkış arabelleği temizler ve ardından her birinde Listenersyöntemini çağırır |
Fail(String) |
Belirtilen hata iletisini yayar. |
Fail(String, String) |
Bir hata iletisi ve ayrıntılı bir hata iletisi yayar. |
Flush() |
Çıkış arabelleği temizler ve arabelleğe alınan verilerin koleksiyona yazmasına Listeners neden olur. |
Indent() |
Akımı IndentLevel bir artırır. |
Print(String) |
Koleksiyondaki izleme dinleyicilerine bir ileti ve ardından bir satır sonlandırıcı yazar Listeners . |
Print(String, Object[]) |
Koleksiyondaki Listeners izleme dinleyicilerine biçimlendirilmiş bir dize ve ardından bir satır sonlandırıcı yazar. |
Unindent() |
Geçerli olanı IndentLevel 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 |
WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Belirtilen koşul |
WriteIf(Boolean, Object) |
Bir koşul |
WriteIf(Boolean, Object, String) |
Bir koşul |
WriteIf(Boolean, String) |
Bir koşul |
WriteIf(Boolean, String, String) |
Bir koşul |
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 izleme dinleyicilerine bir ileti ve ardından bir satır sonlandırıcı yazar Listeners . |
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 |
WriteLineIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String) |
Belirtilen koşul |
WriteLineIf(Boolean, Object) |
Bir koşul |
WriteLineIf(Boolean, Object, String) |
Bir koşul |
WriteLineIf(Boolean, String) |
Bir koşul |
WriteLineIf(Boolean, String, String) |
Bir koşul |
Şunlara uygulanır
İş Parçacığı Güvenliği
Bu güvenli iş parçacığı türüdür.