Daftar Isi:
Definisi - Apa yang dimaksud dengan Atribut Bersyarat?
Atribut bersyarat adalah tag yang digunakan untuk menandai metode atau kelas yang pelaksanaannya tergantung pada definisi pengidentifikasi preprocessing.
Atribut bersyarat menunjukkan suatu kondisi untuk menentukan kompilasi bersyarat di mana metode secara selektif dipanggil berdasarkan definisi simbol. Ini menginstruksikan kompiler untuk mengkompilasi (ke Bahasa Menengah Microsoft) atau tidak mengkompilasi blok kode tertentu, berdasarkan pada suatu kondisi - apakah simbol kompilasi bersyarat tertentu ditentukan atau tidak. Jika simbol tertentu belum didefinisikan pada saat mereka dipanggil, maka panggilan ke metode atau kelas itu akan diabaikan oleh kompiler.
Techopedia menjelaskan Atribut Bersyarat
Atribut bersyarat memiliki karakteristik berikut:
- Itu dapat diterapkan pada metode dan kelas, tetapi hanya jika mereka diturunkan dari suatu atribut.
- Saat menerapkan atribut kondisional ke kelas, kelas atribut akan dipancarkan ke metadata hanya jika simbol kompilasi bersyarat didefinisikan.
- Dibutuhkan satu parameter, yaitu simbol pengidentifikasi yang mengendalikan kompilasi.
- Argumen yang diteruskan ke metode kondisional atau kelas atribut akan diperiksa jenisnya oleh kompiler.
- Itu benar-benar diurus oleh kompiler dan bukan oleh run time.
- Itu tidak bisa diterapkan pada metode yang digunakan dalam ekspresi delegasi-kreasi.
- Itu tidak mempengaruhi kode yang dihasilkan untuk metode kondisional, tetapi tidak mempengaruhi panggilan ke metode.
Atribut kondisional menyediakan pola pemrograman deklaratif dan membantu mempertahankan kode sumber dengan mudah. Dengan menerapkan atribut bersyarat pada level metode, kode sumber lebih mudah dibaca. Penelepon metode tidak perlu mengambil kode tambahan untuk kompilasi bersyarat. Atribut bersyarat digunakan untuk mengaktifkan fungsi tracing dan logging di build debug dengan menggunakan pengenal DEBUG untuk menampilkan dan mencatat informasi diagnostik yang terkait dengan aplikasi. Selain itu, membantu untuk memisahkan logika yang terkait dengan proses debug (dalam sistem yang digunakan untuk pengembangan) dari rilis build, yang digunakan di situs dan aplikasi. Untuk mempertahankan beberapa edisi (dengan fitur yang dipilih dalam beberapa edisi) dari suatu perangkat lunak tanpa duplikasi kode, kompilasi bersyarat membentuk teknik yang tepat dengan mana kode sumber utama tunggal dikelola untuk beberapa edisi berdasarkan simbol masing-masing yang ditentukan untuk mereka.
Berikut adalah beberapa aturan untuk diikuti saat menggunakan atribut kondisional:
- Metode kondisional di dalam deklarasi kelas atau struct harus memiliki tipe kembali sebagai batal.
- Sementara menggunakan pengidentifikasi ganda sebagai atribut bersyarat, penyertaan metode didasarkan pada hasil logika OR atau logika AND pada simbol yang ditentukan.
- Itu tidak dapat ditentukan pada metode dalam deklarasi antarmuka.
- Metode kondisional tidak dapat didahului dengan kata kunci "override", tetapi itu bisa virtual. Jika diganti, itu dianggap sebagai suatu kondisi secara implisit.
- Simbol yang dipertimbangkan untuk kompilasi bersyarat dapat didefinisikan sebagai opsi baris perintah kompiler atau sebagai variabel lingkungan dari OS shell atau sebagai pragma (menggunakan arahan preprocessor "#define") dalam kode sumber.
- Tidak seperti C ++, definisi simbol dalam C # dapat dalam urutan apa pun dan karenanya urutan antara "#define" dan metode kondisional harus ditetapkan dengan benar.
Meskipun penggunaan "# jika dan # endif" membentuk opsi alternatif untuk atribut bersyarat, yang terakhir menyediakan pendekatan yang lebih bersih, elegan dan lebih rentan kesalahan bila dibandingkan dengan yang sebelumnya. Secara internal, perbedaannya adalah bahwa ketika menggunakan atribut kondisional untuk suatu metode, metode masih akan menjadi bagian dari perakitan dan tidak dimuat. Tetapi dalam kasus #if / #endif, metode tidak akan terlihat dalam perakitan itu sendiri.
Definisi ini ditulis dalam konteks C #