Bagikan melalui


Debug.WriteIf Metode

Definisi

Menulis informasi tentang debug ke pendengar jejak dalam koleksi Listeners jika kondisi true.

Overload

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Jika conditiontrue, tulis nama kategori dan pesan ke listener pelacakan di koleksi Listeners.

WriteIf(Boolean, Object)

Menulis nilai metode ToString() objek ke pendengar jejak dalam koleksi Listeners jika kondisi true.

WriteIf(Boolean, String)

Menulis pesan ke pendengar jejak dalam koleksi Listeners jika kondisi true.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Menulis nama kategori dan pesan ke pendengar jejak dalam koleksi Listeners jika kondisi yang ditentukan true.

WriteIf(Boolean, Object, String)

Menulis nama kategori dan nilai metode ToString() objek ke pendengar jejak dalam koleksi Listeners jika kondisi true.

WriteIf(Boolean, String, String)

Menulis nama kategori dan pesan ke pendengar jejak dalam koleksi Listeners jika kondisi true.

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler)

Sumber:
Debug.cs
Sumber:
Debug.cs
Sumber:
Debug.cs

Jika conditiontrue, tulis nama kategori dan pesan ke listener pelacakan di koleksi Listeners.

public:
 static void WriteIf(bool condition, System::Diagnostics::Debug::WriteIfInterpolatedStringHandler % message);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * WriteIfInterpolatedStringHandler -> unit
Public Shared Sub WriteIf (condition As Boolean, ByRef message As Debug.WriteIfInterpolatedStringHandler)

Parameter

condition
Boolean

Ekspresi kondisional untuk dievaluasi. Jika kondisi true, nilai ditulis ke pendengar pelacakan dalam koleksi.

message
Debug.WriteIfInterpolatedStringHandler

Pesan untuk ditulis jika conditiontrue.

Atribut

Keterangan

Kelebihan beban ini diperkenalkan di .NET 6 untuk meningkatkan performa. Dibandingkan dengan kelebihan beban yang mengambil parameter String, kelebihan beban ini hanya mengevaluasi item pemformatan string terinterpolasi jika pesan diperlukan.

Secara default, output ditulis ke instans DefaultTraceListener.

Gunakan parameter category untuk mengelompokkan pesan output.

Metode ini memanggil metode Write pendengar jejak.

Lihat juga

Berlaku untuk

WriteIf(Boolean, Object)

Sumber:
Debug.cs
Sumber:
Debug.cs
Sumber:
Debug.cs

Menulis nilai metode ToString() objek ke pendengar jejak dalam koleksi Listeners jika kondisi true.

public:
 static void WriteIf(bool condition, System::Object ^ value);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object value);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object? value);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * obj -> unit
Public Shared Sub WriteIf (condition As Boolean, value As Object)

Parameter

condition
Boolean

Ekspresi kondisional untuk dievaluasi. Jika kondisi true, nilai ditulis ke pendengar pelacakan dalam koleksi.

value
Object

Objek yang namanya dikirim ke Listeners.

Atribut

Contoh

Contoh berikut membuat TraceSwitch bernama generalSwitch. Sakelar ini diatur di luar sampel kode.

Jika sakelar diatur ke TraceLevelError atau lebih tinggi, contoh menghasilkan nama depan parameter nilai ke Listeners. Untuk informasi tentang menambahkan pendengar ke koleksi Listeners, lihat kelas TraceListenerCollection.

Kemudian, jika TraceLevel diatur ke Verbose, contoh menghasilkan pesan pada baris yang sama dengan pesan pertama. Terminator baris mengikuti pesan kedua.

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew TraceSwitch( "General","Entire Application" );

public:
   static void MyErrorMethod( Object^ myObject )
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceError, myObject );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceVerbose, 
         " is not a valid value for this method." );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
static TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static public void MyErrorMethod(Object myObject)
{
    // Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, myObject);

    // Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, " is not a valid value for this method.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod(myObject As Object)
    ' Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, myObject)
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteLineIf(generalSwitch.TraceVerbose, " is not a valid value for this method.")
End Sub

Keterangan

Secara default, output ditulis ke instans DefaultTraceListener.

Metode ini memanggil metode Write pendengar jejak.

Catatan Bagi Inheritor

Anda dapat meminimalkan hukuman performa instrumen aplikasi Anda dengan menggunakan pernyataan If...Then alih-alih menggunakan pernyataan WriteIf(Boolean, String). Dua contoh kode berikut mengirim pesan penelusuran kesalahan yang sama. Namun, contoh pertama jauh lebih cepat ketika pelacakan nonaktif, karena jika mySwitch.TraceError mengevaluasi ke false, Anda tidak memanggil Write(String). Contoh kedua selalu memanggil WriteIf(Boolean, String), bahkan ketika mySwitch.TraceErrorfalse dan tidak ada output pelacakan yang diproduksi. Ini dapat mengakibatkan eksekusi kode kompleks yang tidak perlu.

Contoh pertama:

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

Contoh kedua:

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

Lihat juga

Berlaku untuk

WriteIf(Boolean, String)

Sumber:
Debug.cs
Sumber:
Debug.cs
Sumber:
Debug.cs

Menulis pesan ke pendengar jejak dalam koleksi Listeners jika kondisi true.

public:
 static void WriteIf(bool condition, System::String ^ message);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string message);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string? message);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * string -> unit
Public Shared Sub WriteIf (condition As Boolean, message As String)

Parameter

condition
Boolean

Ekspresi kondisional untuk dievaluasi. Jika kondisi true, pesan ditulis ke pendengar pelacakan dalam koleksi.

message
String

Pesan untuk ditulis.

Atribut

Contoh

Contoh berikut membuat TraceSwitch bernama generalSwitch. Sakelar ini diatur di luar sampel kode.

Jika sakelar diatur ke TraceLevelError atau lebih tinggi, contoh menghasilkan pesan kesalahan pertama ke Listeners. Untuk informasi tentang menambahkan pendengar ke koleksi Listeners, lihat kelas TraceListenerCollection.

Kemudian, jika TraceLevel diatur ke Verbose, contoh menghasilkan pesan kesalahan kedua pada baris yang sama dengan pesan pertama. Terminator baris mengikuti pesan kedua.

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew TraceSwitch( "General","Entire Application" );

public:
   static void MyErrorMethod()
   {
      // Write the message if the TraceSwitch level is set to Error or higher.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceError, "My error message. " );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteIf( generalSwitch->TraceVerbose, 
         "My second error message." );
      #endif
   }
// Class-level declaration.
// Create a TraceSwitch.
TraceSwitch generalSwitch = new TraceSwitch("General", "Entire Application");

static void MyErrorMethod()
{
    // Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, "My error message. ");

    // Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, "My second error message.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod()
    ' Write the message if the TraceSwitch level is set to Error or higher.
    Debug.WriteIf(generalSwitch.TraceError, "My error message. ")
    
    ' Write a second message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, "My second error message.")
End Sub

Keterangan

Secara default, output ditulis ke instans DefaultTraceListener.

Metode ini memanggil metode Write pendengar jejak.

Catatan Bagi Inheritor

Anda dapat meminimalkan hukuman performa instrumen aplikasi Anda dengan menggunakan pernyataan If...Then alih-alih menggunakan pernyataan WriteIf(Boolean, String). Dua contoh kode berikut mengirim pesan penelusuran kesalahan yang sama. Namun, contoh pertama jauh lebih cepat ketika pelacakan nonaktif, karena jika mySwitch.TraceError mengevaluasi ke false, Anda tidak memanggil Write(String). Contoh kedua selalu memanggil WriteIf(Boolean, String), bahkan ketika mySwitch.TraceErrorfalse dan tidak ada output pelacakan yang diproduksi. Ini dapat mengakibatkan eksekusi kode kompleks yang tidak perlu.

Contoh pertama:

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

Contoh kedua:

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

Lihat juga

Berlaku untuk

WriteIf(Boolean, Debug+WriteIfInterpolatedStringHandler, String)

Sumber:
Debug.cs
Sumber:
Debug.cs
Sumber:
Debug.cs

Menulis nama kategori dan pesan ke pendengar jejak dalam koleksi Listeners jika kondisi yang ditentukan true.

public:
 static void WriteIf(bool condition, System::Diagnostics::Debug::WriteIfInterpolatedStringHandler % message, System::String ^ category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, ref System.Diagnostics.Debug.WriteIfInterpolatedStringHandler message, string? category);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * WriteIfInterpolatedStringHandler * string -> unit
Public Shared Sub WriteIf (condition As Boolean, ByRef message As Debug.WriteIfInterpolatedStringHandler, category As String)

Parameter

condition
Boolean

Ekspresi kondisional untuk dievaluasi. Jika kondisi true, pesan ditulis ke pendengar pelacakan dalam koleksi.

message
Debug.WriteIfInterpolatedStringHandler

Pesan untuk ditulis.

category
String

Nama kategori yang digunakan untuk mengatur output.

Atribut

Keterangan

Kelebihan beban ini diperkenalkan di .NET 6 untuk meningkatkan performa. Dibandingkan dengan kelebihan beban yang mengambil parameter String, kelebihan beban ini hanya mengevaluasi item pemformatan string terinterpolasi jika pesan diperlukan.

Secara default, output ditulis ke instans DefaultTraceListener.

Gunakan parameter category untuk mengelompokkan pesan output.

Metode ini memanggil metode Write pendengar jejak.

Lihat juga

Berlaku untuk

WriteIf(Boolean, Object, String)

Sumber:
Debug.cs
Sumber:
Debug.cs
Sumber:
Debug.cs

Menulis nama kategori dan nilai metode ToString() objek ke pendengar jejak dalam koleksi Listeners jika kondisi true.

public:
 static void WriteIf(bool condition, System::Object ^ value, System::String ^ category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object value, string category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, object? value, string? category);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * obj * string -> unit
Public Shared Sub WriteIf (condition As Boolean, value As Object, category As String)

Parameter

condition
Boolean

Ekspresi kondisional untuk dievaluasi. Jika kondisi true, nama dan nilai kategori ditulis ke pendengar jejak dalam koleksi.

value
Object

Objek yang namanya dikirim ke Listeners.

category
String

Nama kategori yang digunakan untuk mengatur output.

Atribut

Contoh

Contoh berikut membuat TraceSwitch bernama generalSwitch. Sakelar ini diatur di luar sampel kode.

Jika sakelar diatur ke TraceLevelVerbose, contoh menghasilkan nama myObject dan category ke Listeners. Untuk informasi tentang menambahkan pendengar ke koleksi Listeners, lihat kelas TraceListenerCollection.

Kemudian, jika TraceLevel diatur ke Error atau lebih tinggi, contoh menghasilkan pesan kesalahan kedua pada baris yang sama dengan pesan pertama. Terminator baris mengikuti pesan kedua.

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew 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.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceVerbose, myObject, category );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceError, 
         " Object is not valid for this category." );
      #endif
   }
// 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 Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject, category);

    // Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Object is not valid for this category.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod(myObject As Object, category As String)
    ' Write the message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject, category)
    
    ' Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Object is not valid for this category.")
End Sub

Keterangan

Secara default, output ditulis ke instans DefaultTraceListener.

Parameter category dapat digunakan untuk mengelompokkan pesan output.

Metode ini memanggil metode Write pendengar jejak.

Catatan Bagi Inheritor

Anda dapat meminimalkan hukuman performa instrumen aplikasi Anda dengan menggunakan pernyataan If...Then alih-alih menggunakan pernyataan WriteIf(Boolean, String). Dua contoh kode berikut mengirim pesan penelusuran kesalahan yang sama. Namun, contoh pertama jauh lebih cepat ketika pelacakan nonaktif, karena jika mySwitch.TraceError mengevaluasi ke false, Anda tidak memanggil Write(String). Contoh kedua selalu memanggil WriteIf(Boolean, String), bahkan ketika mySwitch.TraceErrorfalse dan tidak ada output pelacakan yang diproduksi. Ini dapat mengakibatkan eksekusi kode kompleks yang tidak perlu.

Contoh pertama:

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

Contoh kedua:

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

Lihat juga

Berlaku untuk

WriteIf(Boolean, String, String)

Sumber:
Debug.cs
Sumber:
Debug.cs
Sumber:
Debug.cs

Menulis nama kategori dan pesan ke pendengar jejak dalam koleksi Listeners jika kondisi true.

public:
 static void WriteIf(bool condition, System::String ^ message, System::String ^ category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string message, string category);
[System.Diagnostics.Conditional("DEBUG")]
public static void WriteIf (bool condition, string? message, string? category);
[<System.Diagnostics.Conditional("DEBUG")>]
static member WriteIf : bool * string * string -> unit
Public Shared Sub WriteIf (condition As Boolean, message As String, category As String)

Parameter

condition
Boolean

Ekspresi kondisional untuk dievaluasi. Jika kondisi true, nama kategori dan pesan ditulis ke pendengar jejak dalam koleksi.

message
String

Pesan untuk ditulis.

category
String

Nama kategori yang digunakan untuk mengatur output.

Atribut

Contoh

Contoh berikut membuat TraceSwitch bernama generalSwitch. Sakelar ini diatur di luar sampel kode.

Jika sakelar diatur ke TraceLevelVerbose, contoh menghasilkan pesan kesalahan pertama ke Listeners. Untuk informasi tentang menambahkan pendengar ke koleksi Listeners, lihat kelas TraceListenerCollection.

Kemudian, jika TraceLevel diatur ke Error atau lebih tinggi, contoh menghasilkan pesan kesalahan kedua pada baris yang sama dengan pesan pertama. Terminator baris mengikuti pesan kedua.

   // Class-level declaration.
   // Create a TraceSwitch.
   static TraceSwitch^ generalSwitch = 
      gcnew 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.
      #if defined(DEBUG)
      Debug::WriteIf( generalSwitch->TraceVerbose, String::Concat( myObject, 
         " is not a valid object for category: " ), category );
      
      // Write a second message if the TraceSwitch level is set to Verbose.
      Debug::WriteLineIf( generalSwitch->TraceError, 
         " Please use a different category." );
      #endif
   }
// 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 Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject.ToString() +
       " is not a valid object for category: ", category);

    // Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Please use a different category.");
}
' Class-level declaration.
' Create a TraceSwitch.
Private Shared generalSwitch As New TraceSwitch("General", "Entire Application")


Public Shared Sub MyErrorMethod(myObject As Object, category As String)
    ' Write the message if the TraceSwitch level is set to Verbose.
    Debug.WriteIf(generalSwitch.TraceVerbose, myObject.ToString() & _
        " is not a valid object for category: ", category)
    
    ' Write a second message if the TraceSwitch level is set to Error or higher.
    Debug.WriteLineIf(generalSwitch.TraceError, " Please use a different category.")
End Sub

Keterangan

Secara default, output ditulis ke instans DefaultTraceListener.

Parameter category dapat digunakan untuk mengelompokkan pesan output.

Metode ini memanggil metode TraceListener.Write pendengar jejak.

Catatan Bagi Inheritor

Anda dapat meminimalkan hukuman performa instrumen aplikasi Anda dengan menggunakan pernyataan If...Then alih-alih menggunakan pernyataan WriteIf(Boolean, String). Dua contoh kode berikut mengirim pesan penelusuran kesalahan yang sama. Namun, contoh pertama jauh lebih cepat ketika pelacakan nonaktif, karena jika mySwitch.TraceError mengevaluasi ke false, Anda tidak memanggil Write(String). Contoh kedua selalu memanggil WriteIf(Boolean, String), bahkan ketika mySwitch.TraceErrorfalse dan tidak ada output pelacakan yang diproduksi. Ini dapat mengakibatkan eksekusi kode kompleks yang tidak perlu.

Contoh pertama:

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

Contoh kedua:

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

Lihat juga

Berlaku untuk