Tukar Pernyataan Kegagalan dalam C#
Pernyataan suis menyediakan cara untuk melaksanakan kod yang berbeza berdasarkan nilai pembolehubah yang ditentukan. Walaupun pernyataan suis menawarkan beberapa kelebihan berbanding binaan if/else if, salah satu batasannya ialah ketidakupayaan untuk meneruskan dari satu kes ke kes yang lain.
Dalam C#, pengkompil menguatkuasakan peraturan "tiada fallthrough", yang bermaksud bahawa pelaksanaan mesti melompat ke permulaan kes seterusnya apabila kes dicapai. Tingkah laku ini memastikan kejelasan kod dan menghalang pelaksanaan berbilang kes yang tidak disengajakan.
Pertimbangkan contoh berikut, di mana kami cuba menukar nombor kepada perwakilan perkataannya menggunakan pernyataan suis:
switch (number.ToString().Length) { case 3: ans += string.Format("{0} hundred and ", numbers[number / 100]); case 2: int t = (number / 10) % 10; if (t == 1) { ans += teens[number % 10]; break; } else if (t > 1) ans += string.Format("{0}-", tens[t]); case 1: int o = number % 10; ans += numbers[o]; break; default: throw new ArgumentException("number"); }
Apabila melaksanakan kod ini, pengkompil akan menghasilkan ralat yang menunjukkan bahawa "Kawalan tidak boleh jatuh dari satu label kes ('kes 3:') kepada yang lain" dan "Kawalan tidak boleh jatuh daripada satu label kes ('kes 2:') kepada yang lain."
Untuk mencapai tingkah laku fallthrough dalam C#, seseorang boleh menggunakan teknik berikut:
Adalah penting untuk ambil perhatian bahawa fallthrough tidak disyorkan kerana potensinya untuk mencipta kod yang tidak jelas dan terdedah kepada ralat. Secara umumnya, amalan yang lebih baik untuk menggunakan if/else atau binaan bersyarat lain apabila berbilang syarat perlu disemak.
Atas ialah kandungan terperinci Bolehkah Pernyataan Suis C# Jatuh, dan Jika Ya, Bagaimana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!