2017-01-19 6 views
-4
bool AllQuestionsAnswered() 
    { 
     for (int i = 0; i < Convert.ToInt32(count); i++) 
     { 
      string _1 = "rbchoice1_" + i; 
      string _2 = "rbchoice2_" + i; 
      string _3 = "rbchoice3_" + i; 
      string _4 = "rbchoice4_" + i; 

      bool c1 = ((RadioButton)tabControl1.Controls[_1]).Checked; 
      bool c2 = ((RadioButton)tabControl1.Controls[_2]).Checked; 
      bool c3 = ((RadioButton)tabControl1.Controls[_3]).Checked; 
      bool c4 = ((RadioButton)tabControl1.Controls[_4]).Checked; 

      if (c1 == false && c2 == false && c3 == false && c4 == false) 
      { 
       return false; 
       break; 
      } 
     } 
     return true; 
    } 

Мой код выше дает мне предупреждение «Недоступный код обнаружен». Как я могу это исправить? Будет ли все в порядке, если я просто проигнорирую предупреждение? Пожалуйста помоги.C# - обнаружен недостижимый код, прорыв внутри, если инструкция внутри цикла

+6

Просто удалите инструкцию 'break;'. – Rob

+0

Вы должны изучить несколько вещей из этого: 1) Научитесь понимать код, который вы пишете, вместо того, чтобы просто нажимать клавиши на клавиатуре; 2) Научитесь использовать отладчик, который скажет вам ** точно **, почему эта линия не может быть достигнута; и 3) Научитесь читать код, и вы поймете, почему ваш цикл совершенно не нужен (смотрите значения, которые вы присваиваете переменным 'string _' при прохождении кода в отладчике). –

+0

Почему, по вашему мнению, цикл не нужен? –

ответ

-1

Как сказал Роб в комментарии: У вас есть строка, которая возвращает и после этого разрывает линию. Перерыв недоступен (вы только что вернулись).

0

если return false; достигли тогда AllQuestionsAnswered(), тогда не будет необходимости в заявлении break;; удалите break;, и вам будет хорошо идти!

0

Здесь вы должны отметить две вещи. Разрыв может быть использован внутри цикла для остановки его итерации и выполнения следующей инструкции в блоке, который приходит после цикла. Принимая во внимание, что возврат вышвырнет вас из прилагаемого метода, поэтому код после возврата никогда не будет выполнен. Здесь вам не нужно использовать break, так как возврат будет выполнять эту работу за вас. И если вы удалите return false; и продолжите с перерывом, этот метод всегда будет возвращать true

Смежные вопросы