Perbandingan prestasi C#: else if
lwn. switch
Dalam pembangunan C#, selalunya mengelirukan untuk memilih antara else if
atau switch
pernyataan untuk melaksanakan pertimbangan bersyarat. Artikel ini menyelami perbezaan prestasi antara kedua-dua kaedah.
else if
Pelaksanaan
else if
menyemak setiap keadaan secara bergilir-gilir sehingga padanan ditemui. Contohnya:
<code class="language-csharp">int a = 5; if (a == 1) { // 代码 } else if (a == 2) { // 代码 } else if (a == 3) { // 代码 } else if (a == 4) { // 代码 } else // 代码</code>
switch
Pelaksanaan
switch
membandingkan nilai input dengan berbilang kes dan melaksanakan blok kod yang sepadan dengan kes yang sepadan. Contoh yang sama:
<code class="language-csharp">int a = 5; switch (a) { case 1: // 代码 break; case 2: // 代码 break; case 3: // 代码 break; case 4: // 代码 break; default: // 代码 break; }</code>
Pertimbangan Prestasi
Apabila bilangan kes kecil, perbezaan prestasi antara else if
dan switch
adalah tidak ketara. Walau bagaimanapun, apabila bilangan kes meningkat, switch
menjadi lebih cekap.
Ini kerana kenyataan switch
biasanya dilaksanakan menggunakan jadual carian atau jadual cincang apabila bilangan kes melebihi lima. Ini bermakna semua kes mempunyai masa akses yang sama, tanpa mengira susunan.
dan else if
menyemak setiap keadaan secara berurutan. Oleh itu, masa untuk mengakses syarat terakhir akan meningkat apabila bilangan kes meningkat, yang akan membawa kepada penurunan prestasi yang ketara untuk sejumlah besar penghakiman syarat.
Kesimpulan
Untuk kes dengan bilangan kes yang terhad, perbezaan prestasi antara else if
dan switch
adalah diabaikan. Walau bagaimanapun, apabila berurusan dengan sejumlah besar kes, untuk prestasi terbaik, adalah sangat disyorkan untuk menggunakan pernyataan switch
.
Atas ialah kandungan terperinci `else if` vs. `switch`: Pernyataan Bersyarat Mana yang Menawarkan Prestasi Lebih Baik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!