Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чем заменить в С# Select Case ... case AAA To BBB, Как выражение из VB будет выглядеть в C# 
:(
    Опции темы
evgenybe
Дата 30.1.2011, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 22.5.2007
Где: Израиль

Репутация: 1
Всего: 1



В VB есть возможность множественного ветвления. Например:
Код

        Select Case mTableNum
            Case 40 To 43, 45 To 49, 52, 53, 55, 57, 67, 74, 76



А как подобную краткую форму множественного ветвления сделать в С#? Ведь при помощи switch такое невозможно.


PM MAIL WWW   Вверх
neutrino
Дата 30.1.2011, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 3
Всего: 62



Код

switch (whatever) {
    case 1: case 2: case 3: Console.WriteLine("1, 2 or 3");
        break;
    case 4: case 5: case 6: Console.WriteLine("4, 5 or 6");
        break;
}



--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
evgenybe
  Дата 30.1.2011, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 22.5.2007
Где: Израиль

Репутация: 1
Всего: 1



Цитата(neutrino @  30.1.2011,  11:00 Найти цитируемый пост)
switch (whatever) {
    case 1: case 2: case 3: Console.WriteLine("1, 2 or 3");


Согласен. 
Но это хорошо, когда 1, 2, 3. А если 1,2,3,4,5,....100? А в VB также есть Is > и Is < 
Значит придется сочетать if и switch наверное 
PM MAIL WWW   Вверх
neutrino
Дата 30.1.2011, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 3
Всего: 62



Да, видимо так. Может с точки зрения производительности будет лучше пользоваться Look-up table?


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
VSB
Дата 1.2.2011, 01:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.8.2007

Репутация: 1
Всего: 2



Попробовать 

Код

switch (TRUE) {
    case ((whatever>=1)&&(whatever<=3)): Console.WriteLine("1, 2 or 3");
        break;
    case ((whatever>=4)&&(whatever<=6)): Console.WriteLine("4, 5 or 6");
        break;
}


но не уверен, что вообще скомпилится
PM MAIL   Вверх
neutrino
Дата 2.2.2011, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 3
Всего: 62



Цитата(VSB @  1.2.2011,  00:41 Найти цитируемый пост)
вообще


Цитата(VSB @  1.2.2011,  00:41 Найти цитируемый пост)
не


Цитата(VSB @  1.2.2011,  00:41 Найти цитируемый пост)
скомпилится




--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
gambit
Дата 3.2.2011, 02:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 5
Всего: 40



В данном случае, на мой взгляд, спасет только отказ от свича и заворачивание в if.
Код

if(i>0 && i<100)
{
//code
}
elseif(i>100 && i<200)
{
//code
}
else
{
//default
}

PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0982 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.