4

質問のこの回答に触発され
ましたC#のスイッチの空のケースは、次の空でないものと組み合わされていますか?

この用語は、C# 言語仕様の §6.5 にのみ出現します。

  • の戻り値Dの型が void でなく、 の本体がFステートメント ブロックである場合、 の各パラメーターにFの対応するパラメーターの型が指定されているD場合、 の本体は、到達不能な終端Fを持つ有効なステートメント ブロック (§8.2 に関して) です。各 return ステートメントが、 の戻り値の型に暗黙的に変換可能な式を指定するポイントD

仕様の後半で見ることができます

  • 8.1 エンドポイントと到達可能性

    すべてのステートメントにはエンドポイントがあります。直観的に言えば、ステートメントの終点は、ステートメントの直後の場所です。複合ステートメント (埋め込みステートメントを含むステートメント) の実行規則は、制御が埋め込みステートメントの終点に到達したときに実行されるアクションを指定します。たとえば、制御がブロック内のステートメントの終点に到達すると、制御はブロック内の次のステートメントに移されます。
    ...

そして、私たちはそれをある程度感じているかもしれません。ただし、グーグルで調べたところ、到達不能エンドポイントの直接的な説明がないことがわかりました。スタック オーバーフローは Q&A サイトなので、英語を母国語としないプログラマーにとって、より簡単で直感的な説明があれば、検索しやすく、この用語を理解するのに役立つと思います。

4

2 に答える 2

0

簡単に言えば、分岐を実行せずにステートメントが完了する場合にのみ、エンドポイントに到達します (制御の移行)。

そのため、ブロックを終了するブランチが次のいずれかである場合、ブロックに到達不能なエンドポイントが存在します。

  1. 無条件、または
  2. すべての可能な実行パスに存在します。
于 2013-03-01T23:04:31.223 に答える