1

クラスは次のとおりです(リラックス、これは単なる例であり、具体的な使用を目的としたものではありません)。

public class Sample
{
    public Sample()
    {
    }

    public string Size
    {
        get
        {
            switch (index)
            {
                case 0: return 100;
                        break;
                case 1: return 500;
                        break;
                case 2: return 1000;
                        break;
                ...
            }
        }
    }
}

breakキーワードで「到達不能コードが検出されました」というエラーが発生します。クラスまたはクラスメンバー関数内にswitchステートメントを書くことさえ可能ですか?または、if-elseブロックで立ち往生していますか?

以下のフィードバックに基づいて、私はばかげたエラーを犯し、休憩の前に戻ってきたことがわかります

4

3 に答える 3

7

「到達不能コード」の警告は、breakステートメントがステートメントの直後にあるためreturnです。したがって、breakが実行されることはありません。

于 2013-01-30T21:49:19.080 に答える
3

コードが到達不能であるため、に到達不能コードが表示されbreakます。はそれreturnを保証します。ステートメントを削除するだけでbreak、すべてが正常に機能するはずです。

次の2つの方法のいずれかでスイッチを書き換えることができます。

switch(index)
{
  case 0: return 100;
  case 1: return 500;
  case 2: return 1000;
}

また

int value = 0;
switch(index)
{
   case 0:
     value = 100;
     break;
   case 1:
     value = 500;
     break;
   case 2:
     value = 1000;
     break;
}
return value;
于 2013-01-30T21:52:46.153 に答える
1

変数を使用して番号を保存できます。切り替え後、変数を返します。

public class Sample
{
    public Sample()
    {

    }

    public string Size
    {
        get
        {
            int num=0;
            switch (index)
            {
                case 0: num= 100;
                    break;
                case 1: num= 500;
                    break;
                case 2: num= 1000;
                    break;
            }
            return num;
        }
    }
}
于 2013-01-30T21:50:45.953 に答える