Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mencapai Gelagat Fallthrough dalam Pernyataan Suis C#?

Bagaimanakah Saya Boleh Mencapai Gelagat Fallthrough dalam Pernyataan Suis C#?

Linda Hamilton
Lepaskan: 2025-01-04 07:29:35
asal
367 orang telah melayarinya

How Can I Achieve Fallthrough Behavior in C# Switch Statements?

Bolehkah Pernyataan Suis Jatuh dalam C#?

Tukar pernyataan dalam C# lazimnya melaksanakan kod yang dikaitkan dengan kes yang dipadankan dan kemudian keluar dari suis . Walau bagaimanapun, terdapat keadaan apabila satu kes mungkin diingini mengalir ke yang lain, dikenali sebagai "fallthrough."

Dalam contoh yang diberikan, kaedah NumberToWords cuba menukar nombor kepada perwakilan perkataan yang sepadan. Ia menggunakan tiga tatasusunan untuk mewakili nombor, puluh dan remaja. Pernyataan suis mempertimbangkan panjang nombor input untuk sepadan dengan huruf besar yang sesuai:

  • Jika nombor itu ialah tiga digit (huruf 3), ia menambahkan perkataan untuk ratusan.
  • Jika nombornya ialah dua digit (kes 2), ia menyemak kes khas (remaja atau puluhan).
  • Jika nombor itu satu digit (kes 1), ia ditambah nombor tempat satu-satunya.

Walau bagaimanapun, pengkompil C# membuang ralat kerana pernyataan suis tidak menyatakan secara eksplisit tempat untuk dilaksanakan selepas setiap kes. Secara lalai, C# memerlukan setiap kes mempunyai pernyataan putus atau pernyataan goto untuk mengelakkan kegagalan.

Untuk mencapai kegagalan dalam C#, anda boleh menggunakan teknik berikut:

  1. Kes Kosong: Tentukan kes tanpa kod, membenarkan kes seterusnya dilaksanakan secara automatik.

    switch (/*...*/) {
     case 0: break; // fall through to case 1
     case 1:
         // do something
         break;
    }
    Salin selepas log masuk
  2. goto case: Gunakan pernyataan goto untuk melompat ke case tertentu dalam suis.

    switch (/*...*/) {
     case 0: goto case 1;
     case 1:
         // do something
         break;
    }
    Salin selepas log masuk
  3. goto lalai: Gunakan pernyataan lalai goto untuk melompat ke lalai kes.

    switch (/*...*/) {
     case 0: goto default;
     default:
         // do something
         break;
    }
    Salin selepas log masuk

Dalam contoh NumberToWords yang asal, goto boleh digunakan untuk mencapai tingkah laku fallthrough yang diingini:

switch (number.ToString().Length)
{
    case 3:
        ans += string.Format("{0} hundred and ", numbers[number / 100]);
        goto case 2;
    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]);
        goto case 1;
    case 1:
        int o = number % 10;
        ans += numbers[o];

        break;
    default:
        throw new ArgumentException("number");
}
Salin selepas log masuk

Sementara fallthrough boleh memberikan yang lebih ringkas pelaksanaan dalam senario tertentu, adalah penting untuk menggunakannya dengan berhati-hati. Kesalahan yang berlebihan boleh menyebabkan kod mengelirukan dan sukar dikekalkan, jadi ia harus digunakan dengan bijak.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Gelagat Fallthrough dalam Pernyataan Suis C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan