switch case 多个处理方式涉及到销售优惠折扣方案处理

Posted 伟大的行动和思想都有一个微不足道的开始.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switch case 多个处理方式涉及到销售优惠折扣方案处理相关的知识,希望对你有一定的参考价值。

定义一个销售接口                                                                                               ICarSalsecs
 public interface ICarSalsecs
    {
        /// <summary>
        /// 优惠折扣方案接口
        /// </summary>
        /// <param name="policType">打折类型</param>
        /// <param name="SalsePrice">折前价格</param>
        /// <returns></returns>
        decimal Discount(short policType, decimal SalsePrice);
    }
定义一个销售类  

public class CarSalse: ICarSalsecs { private readonly Dictionary<short, Func<decimal, decimal>> _dic; public CarSalse() { _dic = new Dictionary<short, Func<decimal, decimal>> { {0, m => m * (decimal)0.1}, {1, m => m * (decimal)0.3}, {2, m => m * (decimal)0.5}, {3, m => m * (decimal)0.7}, {4, m => m * (decimal)0.9} }; } //把各种打折方案封装在字典集合中。 public decimal Discount(short policyType, decimal SalsePrice) { if (_dic.ContainsKey(policyType)) { return _dic[policyType].Invoke(SalsePrice); } return SalsePrice / 2; } } /// <summary> /// 折扣枚举类型 /// </summary> public enum PolicyType { 一折 = 0, 三折 = 1, 五折 = 2, 七折 = 3, 九折 = 4 }
调用方法实现折扣处理
static
void Main(string[] args) { Console.WriteLine("请输入打折策略,0表示1折,1表示3折,2表示5折,3表示7折,4表示9折:"); string policy = Console.ReadLine(); decimal SalsePrice = (decimal)10000.00; Console.WriteLine("打折前的价格为:" + SalsePrice); CarSalse Salse = new CarSalse(); if (!string.IsNullOrWhiteSpace(policy)) { Console.WriteLine("打折后的价格为:" + Salse.Discount(short.Parse(policy), SalsePrice)); } Console.ReadKey(); }

 

以上是关于switch case 多个处理方式涉及到销售优惠折扣方案处理的主要内容,如果未能解决你的问题,请参考以下文章

java中如何能避免过长的switch-case分支语句?

PHP switch case 中多个值的情况

Switch

case语言怎么用

switch 语句中的多个情况

Go之switch分支控制