Switch на C#

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28
Меня перестал устраивать свитч в PM (да он красив до 10 развилок, но когда он становится огромным 50-100, он заграждает собой солнце:cj:).
У меня появилась идея засунуть его в 1 овал C# кода.
---------------------------------------------------------------------------------------------
Как это я вижу у себя в проекте:
1) Я беру значение из переменной A.
2) В свитче 50-100 вариантов, в зависимости от того варианта который будет в А я кладу в переменную B нужное мне значение.
---------------------------------------------------------------------------------------------
Need code example
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28
Последнее редактирование:

OTEC_SERGIUS

Client
Регистрация
04.10.2014
Сообщения
387
Благодарностей
69
Баллы
28
Типа так?
Код:
switch (project.Variables["A"].Value)
            {
                case "ПРОВЕРЯЕМ1":
                    project.Variables["B"].Value = @"1";
                    break;
                case "ПРОВЕРЯЕМ2":
                    project.Variables["B"].Value = @"2";
                    break;
       
                default:
                    Console.WriteLine("Такой язык я не знаю");
                    break;
            }
Зачем в этом коде есть default? Можно ли его убрать?
 
  • Спасибо
Реакции: Burklive

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
default есть даже в блочном экшене.
без него тоже должно работать
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
Типа так?
Код:
switch (project.Variables["A"].Value)
            {
                case "ПРОВЕРЯЕМ1":
                    project.Variables["B"].Value = @"1";
                    break;
                case "ПРОВЕРЯЕМ2":
                    project.Variables["B"].Value = @"2";
                    break;
      
                default:
                    Console.WriteLine("Такой язык я не знаю");
                    break;
            }
Зачем в этом коде есть default? Можно ли его убрать?
Дефолт должен быть всегда) Так как у тя может быть значение которое не попадает под "Проверяем1" и "Проверяем2". И еще project.Variables["B"].Value = @"2"; - знак @ здесь лишний)
 

artur23

Client
Регистрация
14.04.2014
Сообщения
202
Благодарностей
15
Баллы
18
готовый вариант для switch у кого-то есть, поделитесь, плиз...
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 416
Благодарностей
9 120
Баллы
113

artur23

Client
Регистрация
14.04.2014
Сообщения
202
Благодарностей
15
Баллы
18
Сделал сам, может пригодится кому-нибудь... Сначала создаю рандомно значение от 0 до 4, кладу его в переменную "a"
C#:
Random rand = new Random();
int i= rand.Next(0,4);
//System.Threading.Thread.Sleep(i);
return i;
Далее switch:
C#:
switch (project.Variables["a"].Value)
            {
                case "1":
                    project.Variables["result"].Value = "1";
                    break;
        
                case "2":
                   project.Variables["result"].Value = "2";
                    break;
        
                case "0":
                   project.Variables["result"].Value = "0";
                    break;
        
      
                default:
                    Console.WriteLine("0");
        project.Variables["result"].Value = "";
                    break;
        
            }
            
            
            //return project.Variables["result"].Value;
 

Koqpe

Client
Регистрация
23.12.2014
Сообщения
1 100
Благодарностей
649
Баллы
113
Зашел на твой супер сайт из подписи, прям огонь, нужно обязательно перенять у тебя блокировку покупателей магазина если у них стоит блокировщик рекламы.
Во всех своих магазинах применю, записал в дорожную карту. :bt:
 
  • Спасибо
Реакции: Phoenix78

Rimen

Client
Регистрация
28.10.2019
Сообщения
406
Благодарностей
254
Баллы
63
Подскажите -- как можно построить switch не по полному значению переменной, а по вхождению
пример на if:
C#:
if(variable.Contains("http"))
    string variable2 = "в переменной variable указан URL";
такое можно как-то через swich построить или лучше через if else if ?
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Подскажите -- как можно построить switch не по полному значению переменной, а по вхождению
пример на if:
C#:
if(variable.Contains("http"))
    string variable2 = "в переменной variable указан URL";
такое можно как-то через swich построить или лучше через if else if ?
Лучше через if/else по той причине, что данная конструкция поддерживается только на последних версиях c# и if/else в таких случаях всё равно лучше работает
 

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