切换语句示例

如果此文本框的总数为: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 Cost(没有关于if语句)。 是的,很多案例都会被提出,这些将是我的前两个案例。 有人会非常友好地为我提供一个例子,以便我可以填补其余的案例吗? 我有很多。 谢谢。

如果折扣后成本金额介于0.00和999.99之间 ,则会显示一个消息框,其中显示“此金额符合’A-100’常用里程里程”。 和一个“确定”按钮。 不应使用标题栏文本或图标。

如果折扣后成本金额介于1,000.00和1,499.99之间,则会显示一个消息框,其中显示“此金额符合’B-500’常用里程里程。” 和一个“确定”按钮。 不应使用标题栏文本或图标。

C#中不允许使用这种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 } 

您无法在switch检查范围,您应该使用else if链。 请参阅在C#中无法在交换机中使用小数范围?

直接的方法是使用if else语句,因为switch操作不允许范围检查。 另一个棘手的方法是使用Dictionaries 。 下面的代码片段是使用第二种方法演示您想要的内容。

 decimal myVal = decimal.Parse(PostDiscountCostTextBox.Text); var conditions = new Dictionary, 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方法那么容易,但是想要测试。