Kompilasi Bersyarat C# untuk Binaan Nyahpepijat lwn. Pelepasan
Dalam Visual Studio, apabila mengkonfigurasi penyelesaian dengan satu projek, tetapan Konfigurasi menentukan mod binaan, biasanya "nyahpepijat" atau "lepaskan." Walau bagaimanapun, apabila menggunakan arahan kompilasi bersyarat, seperti #if/#then/#elif, adalah penting untuk memastikan keadaan yang betul sedang dinilai.
Dalam coretan kod yang disediakan, pembangun bertujuan untuk membezakan antara nyahpepijat dan mod keluaran untuk menetapkan lalai berubah. Walau bagaimanapun, kod tersebut mengeluarkan "Mode=Debug" tanpa mengira tetapan Konfigurasi.
Kekeliruan timbul daripada simbol prapemproses yang telah ditetapkan dalam Visual Studio. DEBUG/_DEBUG ditakrifkan secara automatik untuk binaan nyahpepijat dan RELEASE untuk binaan keluaran. Ini bermakna mentakrifkan #define DEBUG dalam kod mengatasi gelagat VS lalai dan memaksa keadaan #if DEBUG sentiasa benar.
Pendekatan yang betul ialah mengalih keluar pernyataan #define DEBUG dan sebaliknya bergantung pada prapemproses simbol yang ditakrifkan oleh VS. Kod yang diubah suai sepatutnya kelihatan seperti ini:
#if DEBUG Console.WriteLine("Mode=Debug"); #else Console.WriteLine("Mode=Release"); #endif
Dengan menggunakan DEBUG sebagai syarat, kod menyemak simbol prapemproses yang ditakrifkan berdasarkan tetapan Konfigurasi, membezakan dengan tepat antara mod nyahpepijat dan keluaran.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Kompilasi Bersyarat dengan Betul dalam C# untuk Membezakan Antara Binaan Nyahpepijat dan Keluaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!