Mengapakah ralat "Penggunaan pembolehubah tempatan yang tidak ditetapkan" berlaku apabila menggunakan pernyataan if dalam C#?
Apabila menggunakan pernyataan if dalam C#, anda mungkin menghadapi ralat "Penggunaan pembolehubah tempatan yang tidak ditetapkan", walaupun anda berhasrat untuk memberikan nilai kepada pembolehubah dalam blok bersyarat. Ini kerana pengkompil tidak dapat menjamin bahawa blok kod tertentu akan dilaksanakan.
Pertimbangkan kod berikut, yang menggunakan pembolehubah annualRate
, monthlyCharge
dan lateFee
:
<code class="language-csharp">if (condition1) { // 为变量赋值... } else if (condition2) { // 为变量赋予不同的值... }</code>
Memandangkan pengkompil tidak dapat menentukan syarat yang akan dipenuhi, ia menganggap bahawa satu atau kedua-dua pembolehubah mungkin tidak diberikan nilai, mengakibatkan mesej ralat.
Untuk menyelesaikan masalah ini, anda boleh menggunakan blok else {}
untuk memastikan sekurang-kurangnya satu blok akan dilaksanakan, dengan itu memastikan semua pembolehubah diberikan nilai. Sebagai alternatif, anda boleh menggunakan pernyataan switch
dan bukannya pernyataan if/else
kerana ia menjamin bahawa sekurang-kurangnya satu case
akan dilaksanakan.
<code class="language-csharp">switch (condition) { case 1: // 为变量赋值... break; case 2: // 为变量赋予不同的值... break; default: // 默认情况 break; }</code>
Dengan menggunakan blok else
atau pernyataan switch
, anda memberitahu pengkompil bahawa semua pembolehubah akan diberikan, tanpa mengira blok mana yang dilaksanakan, dengan itu menghapuskan ralat "penggunaan pembolehubah tempatan yang tidak ditetapkan".
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Penggunaan Pembolehubah Tempatan Tidak Ditugaskan' dalam C# Apabila Menggunakan Pernyataan `if`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!