Подтвердить что ты не робот

Пример операторов коммутатора

Если общее количество этого текстового поля: PostDiscountTextBox.Text = $500.00, как мы можем сделать заявления Switch, в которых указано, что если стоимость скидки после скидки составляет от 0,00 до 999,99, отобразите окно с сообщением "Эта сумма соответствует для" частых миль летучей мыши "A-100 и кнопку" ОК"?

Кто-нибудь представит пример оператора switch?

У меня есть это до сих пор, и я не думаю, что это вообще следует. Кто-нибудь проведет меня через это? Спасибо.

        switch (PostDiscountCostTextBox.Text)
        {
            case (0.00 < && PostDiscountCostTextBox.Text <= 999.00)

Спасибо всем, кто помог, но я пытаюсь понять, как использовать оператор switch, который оценивает стоимость Post-discount, основанную на диапазоне числовых значений (ничего о инструкции if). Да, будет много дел, и это будут мои первые два случая. Кто-нибудь будет достаточно любезен, чтобы представить мне пример, чтобы я мог заполнить остальные мои дела? У меня много. Спасибо.

Если стоимость Post-discount Cost между 0.00 и 999.99, отобразите окно сообщения с сообщением "Эта сумма подходит для частых миль летучего" ​​A-100 ". и кнопку" ОК". Не следует использовать текст или значок заголовка.

Если стоимость Post-discount Cost между 1000.00 и 1.499.99, отобразите окно с сообщением "Эта сумма подходит для" B-500 "частых миль летчика ". и кнопку" ОК". Не следует использовать текст или значок заголовка.

4b9b3361

Ответ 1

В С# этот тип switch не разрешен.

Вот пример правильного использования switch

switch(n)       
{         
   case 1:   
      cost += 25;
      break;                  
   case 2:            
      cost += 25;
      break;           
   case 3:            
      cost += 50;
      break;         
   default:            
      Console.WriteLine("Invalid selection. Please select 1, 2, or 3.");            
      break;      
 }

Ваш пример должен быть преобразован в оператор if-elseif-else:

if(first_case_predicate)
{

}
else if(another_predicate)
{

}
else
{
    // like 'default' of switch
}

Ответ 3

Простым способом является использование операторов if else, поскольку проверка диапазона не разрешена для операции switch. Другой сложный способ - использовать Dictionaries. Ниже приведен фрагмент кода - это демонстрация того, что вы хотите, используя второй подход.

decimal myVal = decimal.Parse(PostDiscountCostTextBox.Text);

        var conditions = new Dictionary<Func<int, bool>, Action>
        { 
            { x => x > 0 && x <= 999 ,    () => Console.WriteLine("This amount qualifies for 'A-100' frequent flier miles.")   } ,
            { x => x > 999 ,   () => Console.WriteLine("Dummy!")  } ,
        };

        cases.First(kvp => kvp.Key(myNum)).Value();

Не так просто, как подход if else, но требует теста.