C# で if ステートメントを使用すると、「未割り当てのローカル変数の使用」エラーが発生するのはなぜですか?
C# で if ステートメントを使用すると、条件ブロック内の変数に値を代入するつもりであっても、「未割り当てのローカル変数の使用」エラーが発生することがあります。これは、コンパイラがコードの特定のブロックが実行されることを保証できないためです。
変数 annualRate
、monthlyCharge
、および lateFee
を使用する次のコードを考えてみましょう。
<code class="language-csharp">if (condition1) { // 为变量赋值... } else if (condition2) { // 为变量赋予不同的值... }</code>
この問題を解決するには、
ブロックを使用して少なくとも 1 つのブロックが実行されるようにし、すべての変数に値が割り当てられるようにします。あるいは、少なくとも 1 つの else {}
が実行されることが保証されるため、switch
ステートメントの代わりに if/else
ステートメントを使用することもできます。 case
<code class="language-csharp">switch (condition) { case 1: // 为变量赋值... break; case 2: // 为变量赋予不同的值... break; default: // 默认情况 break; }</code>
ブロックまたは else
ステートメントを使用すると、どのブロックが実行されるかに関係なく、すべての変数が割り当てられることがコンパイラーに伝えられ、それによって「未割り当てのローカル変数の使用」エラーが排除されます。 switch
以上がC# で「if」ステートメントを使用すると「未割り当てのローカル変数の使用」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。