C#, switch - значение должно быть константой

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
237
Баллы
43
Код:
string inp = project.Variables["inp"].Value;

switch (inp)
{
    case project.Variables["inp1"].Value:
        return 1;
        break;
    case project.Variables["inp2"].Value:
        return 2;
        break;
    default:
        return 0;
        break;
}
хотел сэкономить пространство, да вот не вышло..
Пишет, что значения case должны быть константой. В обычном switch вставка переменный срабатывает.

Пробовал сделать константой, но все так же.
Код:
string inp = project.Variables["inp"].Value;

const string inp1 = project.Variables["inp1"].Value;
const string inp2 = project.Variables["inp2"].Value;

switch (inp)
{
    case inp1:
        return 1;
        break;
    case inp2:
        return 2;
        break;
    default:
        return 0;
        break;
}
 
Регистрация
03.12.2012
Сообщения
187
Благодарностей
89
Баллы
28
Вам скорее всего лучше почитать книгу по c# Троелсена и т.п.д.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 242
Благодарностей
5 848
Баллы
113
Есть вот так константу прописывать, то все работает - const string inp1 = ''test value";
 

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
237
Баллы
43
Есть вот так константу прописывать, то все работает - const string inp1 = ''test value";
это понятно. но мне нужно вместо ''test value" прописать переменную из PM project.Variables["inp"].Value
или каким-то другим способом, но получить значение именно с переменной из проджектмекера
 

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
237
Баллы
43

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 242
Благодарностей
5 848
Баллы
113
это понятно. но мне нужно вместо ''test value" прописать переменную из PM project.Variables["inp"].Value
или каким-то другим способом, но получить значение именно с переменной из проджектмекера
не получится в константу прописать переменную.
встроенный экшн имеет синтаксис JS, не C#, поэтому отличия
 
  • Спасибо
Реакции: Bot_Sculptor

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
237
Баллы
43
не получится в константу прописать переменную.
встроенный экщн имеет синтаксис JS, не C#, поэтому отличия
хорошо, тогда воспользуюсь if: else if: else if: else:
будет тоже самое.
 
Регистрация
03.12.2012
Сообщения
187
Благодарностей
89
Баллы
28
спасибо, просто отличнейший ответ на мой вопрос, ты помог.
Четы злисся. Почитай и у знаешь, что свич целесообразней использовать от 3 ифов. Тебе вообще быстрей типа такого написать:
Код:
string inp = project.Variables["inp"].Value;
project.Variables["inp1"].Value == inp?1:0
 

Bot_Sculptor

Client
Регистрация
11.06.2012
Сообщения
787
Благодарностей
237
Баллы
43
Четы злисся. Почитай и у знаешь, что свич целесообразней использовать от 3 ифов. Тебе вообще быстрей типа такого написать:
Код:
string inp = project.Variables["inp"].Value;
project.Variables["inp1"].Value == inp?1:0
это все круто.... но я не злюсся. И
целесообразней использовать от 3 ифов
это был всего лишь пример. чтобы объяснить суть, того что нужно. А так ты ведь не знаешь сколько там ифов мне нужно.

а какой ты ожидал ответ, когда в теме поставлен конкретный вопрос, а в ответ получаешь "пойди ка почитаю книгу". Знаешь на что это похоже, да просто на тупой набив постов. Если нечего ответить, то зачем отвечать ? Я же не спрашивал, какою мне книгу почитать, чтобы изучить c#
ps это риторический вопрос, не отвечай.
Вопрос топика решен и точка.
 
Регистрация
03.12.2012
Сообщения
187
Благодарностей
89
Баллы
28
а какой ты ожидал ответ, когда в теме поставлен конкретный вопрос, а в ответ получаешь "пойди ка почитаю книгу". Знаешь на что это похоже, да просто на тупой набив постов. Если нечего ответить, то зачем отвечать ? Я же не спрашивал, какою мне книгу почитать, чтобы изучить c#
ps это риторический вопрос, не отвечай.
Вопрос топика решен и точка.
Все все брейк. Виноват исправлюсь.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)