当使用Switch时 case太多,用委托代替
switch (_mediaState) { case State.Run: AAA(); break; case State.Stop: BBB(); break; case State.Forward: CCC(); break; case State.Rewind: DDD(); break; }
public delegate void RelaceSwitch(); private static Dictionary<State,RelaceSwitch> ReplaceSwitch=new Dictionary<State, RelaceSwitch>(); public static void MethodRun() { AAA(); } public static void MethodStop() { BBB(); } public static void MethodForward() { CCC(); } public static void MethodRewind() { DDD(); } private static void Adddic() { ReplaceSwitch.Add(State.Run, MethodRun);//ReplaceSwitch[State.Run]=MethodRun; ReplaceSwitch.Add(State.Stop, MethodStop); ReplaceSwitch.Add(State.Forward, MethodForward); ReplaceSwitch.Add(State.Rewind, MethodRewind); } private static void Exec(State state, RelaceSwitch action) { action.Invoke(); }
调用
去掉switch
首先Adddic();
之后Exec(_mediaState, ReplaceSwitch[_mediaState]);
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步