Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Philipok
0 / 0 / 1
Регистрация: 05.05.2013
Сообщений: 24
1

Switch-case: Не могу понять почему не весь код в методе возвращается

29.03.2014, 12:59. Просмотров 455. Ответов 7
Метки нет (Все метки)

подскажите пожалуйста...
Не могу понять почему пишет что не весь код в методе возвращается.
Я в каждом кейсе возвращаю созданный массив другим методом CreateRandomArray
В моем методе стоит тип возвращаемого значения соответствующий.
В чем дело не могу понять.!
0
Миниатюры
Switch-case: Не могу понять почему не весь код в методе возвращается  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2014, 12:59
Ответы с готовыми решениями:

Почему не может использоваться command в качестве case для switch?
Почему не может использоваться command в качестве case для switch? using...

Объясните код со switch и goto case
using System; class lol { public static void Main() { for...

Можно как-то сократить код с switch case?
Можно как-то сократить следующий код с switch case? switch...

Почему участки кода со "switch-case" - это плохо и реплейсятся при рефакторинге?
Попалась мне статейка одна на Хабре, где давались рекомендации по грамотному...

Не могу понять почему не работает
Помогите исправить код программы, пожалуйста! using System; using...

7
insite2012
Модератор
Эксперт .NET
4852 / 3807 / 1094
Регистрация: 12.10.2013
Сообщений: 11,096
Записей в блоге: 2
29.03.2014, 13:17 2
А Вы представьте ситуацию, когда не будет ни одного совпадения... Что тогда метод должен вернуть?
Верните в switch...case по default еще что-нибудь, типа "Совпадений нет" или что-то в этом роде...
0
MansMI
1448 / 1157 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
29.03.2014, 13:17 3
компилятор думает: а если 4 придет? => default нужен
0
Philipok
0 / 0 / 1
Регистрация: 05.05.2013
Сообщений: 24
29.03.2014, 13:27  [ТС] 4
Все так-же
0
Миниатюры
Switch-case: Не могу понять почему не весь код в методе возвращается  
insite2012
Модератор
Эксперт .NET
4852 / 3807 / 1094
Регистрация: 12.10.2013
Сообщений: 11,096
Записей в блоге: 2
29.03.2014, 13:31 5
Вы не break-айте, а верните из метода что-то!
0
Metall_Version
2118 / 1255 / 516
Регистрация: 04.03.2014
Сообщений: 4,094
Завершенные тесты: 2
29.03.2014, 13:33 6
Цитата Сообщение от MansMI Посмотреть сообщение
компилятор думает: а если 4 придет? => default нужен
точнее, как сказали выше , он думают что вернет в этом случае метод.
можно и без дефаулта обойтись .
достаточно после switch вернуть какой либо массив
1
UrrreeeZ
1 / 1 / 4
Регистрация: 29.10.2012
Сообщений: 31
29.03.2014, 19:40 7
а еще лучше оставить один return в конце метода, а в case`ах присваивать значение локальной переменной что-то вроде этого:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public static int[] MyMethod(int var)
{
 int[] result;
 switch var:
 {
  case 1:
  {
   result=RandomArray(5, 1, 10);
   break;
  }
  case 2:
  { 
   result=RandomArray(10, 1, 10);
   break;
  }
  case 3:
  {
   result=RandomArray(15, 1, 10);
   break;
  }
 }
 return result;
}
НО! важно в вызывающем методе проверить на null
0
MansMI
1448 / 1157 / 549
Регистрация: 08.01.2012
Сообщений: 4,509
29.03.2014, 19:51 8
Цитата Сообщение от UrrreeeZ Посмотреть сообщение
НО! важно в вызывающем методе проверить на null
а вот это интересно, недавно тему мутил
Как обратиться к инициализированному массиву
0
29.03.2014, 19:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2014, 19:51

Не могу понять почему не видит компилятор переменную
Здравствуйте! using System; using System.Collections.Generic; using...

Уровень доступа недостаточный - не могу понять почему.
Реализую интерфейс CompareTo - если по возрасту все нормально - как только...

[Selenium] Не могу понять почему появляются ошибки с элементами страницы
C# + selenium IWebElement cet1 =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru