ti-enxame.com

Exemplo de instruções de chave

Se o total dessa caixa de texto for: PostDiscountTextBox.Text = $ 500,00, como fazemos as declarações Switch afirmando que, se o valor do Custo pós-desconto estiver entre 0,00 e 999,99, exiba uma caixa de mensagem com a mensagem "Este valor é qualificado para 'A -100 'milhas de passageiro frequente "e um botão" OK "?

Alguém fornecerá um exemplo de instrução switch?

Só tenho isso até agora e acho que não segue nada. Alguém vai me guiar por isso? Obrigado.

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

Agradeço a todos que ajudaram, mas estou tentando descobrir como usar uma instrução switch que avalie o custo pós-desconto com base em um intervalo de valores numéricos (nada sobre uma instrução if). Sim, muitos casos serão apresentados e esses serão meus dois primeiros casos. Alguém terá a gentileza de me fornecer um exemplo para que eu possa preencher o resto dos meus casos? Eu tenho muitos. Obrigado.

Se o valor do custo pós-desconto for entre 0,00 e 999,99, exiba uma caixa de mensagem com a mensagem "Esse valor se qualifica para milhas de passageiro frequente 'A-100'". e um botão "OK". Nenhum texto ou ícone da barra de título deve ser usado.

Se o valor do Custo pós-desconto for entre 1.000,00 e 1.499,99, exiba uma caixa de mensagem com a mensagem "Este valor se qualifica para milhas de passageiro frequente 'B-500'". e um botão "OK". Nenhum texto ou ícone da barra de título deve ser usado.

13
user2085275

Esse tipo de uso switch não é permitido em C #.

Aqui está um exemplo de uso switch adequado

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;      
 }

Seu exemplo deve ser transformado em if-elseif-else declaração:

if(first_case_predicate)
{

}
else if(another_predicate)
{

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

Você não pode verificar os intervalos em switch, deve usar uma cadeia de else if. Consulte É impossível usar intervalos decimais em um comutador em C #?

3
wRAR

A maneira direta é usar as instruções if else, Pois a verificação de intervalos não é permitida para a operação switch. A outra maneira complicada é usar Dictionaries. O snippet de código abaixo é uma demonstração do que você deseja usando a segunda abordagem.

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();

Não é tão fácil quanto a abordagem if else, Mas exige um teste.

2
MuhammadHani