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(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架