网上博文 改善C#程序的50种方法 面向对象之继承和组合浅谈 提高 ASP.NET Web 应用性能的 24 种方法和技巧 我们不改需求了,给你们立字据! 那些坑爹的老代码,究竟改还是不改?! 工作中无论写什么代码全靠抄袭,你觉得这样对么? 为什么技术与产品沟通起来总是那么痛苦 提高 ASP.NET Web 应用性能的 24 种方法和技巧 key:给新手程序员的16个工作必备小妙招,省下时间去LOL吧! key:做软件项目,程序员如何避免踩坑? (微信搜索) 如何提高你代码质量 浅谈软件工程师的代码素养 程序员八荣八耻: 1 、2 评审的艺术——谈谈现实中的代码评审
“代码行数、类耦合度、继承深度、圈复杂度”值越小越好。 (类耦合度:互相依赖的程度。 继承,可以使子类有父类的属性和方法或者重定义、追加属性和方法等。圈复杂度:if-else出现次数)
编写高质量代码改善C#程序的157个建议——建议149:使用表驱动法避免过长的if和switch分支。扩展:数据驱动编程之表驱动法
enum Week{ Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, }; //根据枚举值获得中文星期几 (表驱动法编程--可以把表驱动简单理解为查字典。如果用switch-case就要写很多代码!) static string GetWeek(Week wk) { string[] cWeek={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"}; return cWeek[(int)wk]; } /*需求升级:输出成“星期一Mike打扫卫生、星期二Rose清理衣柜...”,则用表驱动法加上反射*/ class Program { static void Main(string[] args) { SampleClass sample=new SampleClass(); var addMethod = typeof (SampleClass).GetMethod(ActionInTable(Week.Monday)); addMethod.Invoke(sample, null); } static string ActionInTable(Week week) { string[] methods = { "Cleaning", "CleanCloset", "Quarrel", "Shopping", "Temp", "Temp", "Temp" }; return methods[(int)week]; } } class SampleClass { public void Cleaning() { Console.WriteLine("打扫"); } public void CleanCloset() { Console.WriteLine("整理衣橱"); } public void Quarrel() { Console.WriteLine("吵架"); } public void Shopping() { Console.WriteLine("购物"); } public void Temp() { Console.WriteLine("临时安排"); } }