LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

C# 代码规范和最佳实践

admin
2026年1月26日 18:39 本文热度 143

实现一个功能有很多种方式,但是不管是用什么方式,逻辑是不会变的。

"万变不离其宗,以不变应万变。"

在开发过程中,养成良好的代码规范是很有必要的。遵循代码规范就好像给了一个标准,只要按照这个标准来实现功能,不仅代码的可读性强,代码维护起来也是很容易,甚至还可以提高开发团队协作减少潜在的错误。

C# 是面向对象设计编程,面向对象编程有五个基本原则简称(SOLID原则)。规范SOLID原则就是为了提高软件设计的可维护性、灵活性达到代码复用的效果。

什么是SOLID原则?

SOLID是每个原则的英文首字母缩写。

原则一:单一职责原则(Sigle Responsibility Principle)简称S。

定义:一个类应该仅有一个引起它逻辑修改的原因。

这就规范了一个类只有一个职责功能,如果一个类承担了太多的职责,当需求发生改变时,这个类就要频繁进行修改。

原则二:开闭原则(Open Close Principle)简称O。

定义:对类、模板、函数等应该对扩展开发,对修改关闭。

这样要求当需求发生变化时,可以通过添加新的代码来进行扩展新的变化,而不是修改现有的代码。

原则三:里氏替换原则(Liskov Substitution Principle)简称L。

定义:子类型必须做到能够替换其父类型。

要求任何基类出现的地方,子类都可以出现,而且使用者不需要知道这个子类就能使用。

原则四:接口隔离原则(Interface Segregation Principle)简称I。

定义:客户端不应该依赖它不使用的接口。

因为C# 可以继承多个接口,这个原则要求一个类不应该滥用继承不需要的接口,应该需要什么就继承什么,只需达到功能,只实现需要的接口。

原则五:依赖倒置原则(Dependency Inversion Principle)简称D。

定义:高层模块不应该依赖低层模块,两者都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。只要通过接口或者抽象类来实现功能就可以遵循依赖倒置原则。

值得注意的是,这五个原则应该协同作用,在开发中应该尽可能满足这几个原则,以构建出高质量的程序。

看看这个例子:

写一个汽车种类的程序。

分析:

汽车有本田、丰田、奔驰、宝马、奥迪...

每种汽车有不同的引擎、颜色....

每种汽车都有启动和停止两个动作。

using System;namespace A_CarJob{internal class Program{static void Main(string[] args){Benz benz = new Benz("Red");benz.Drive();Console.ReadKey();}}//奔驰汽车类class Benz{public string color { getset; }BenzEngine benzEngine = new BenzEngine();BenzColor benzColor = new BenzColor();public Benz(string color){this.color = color;}public void Drive(){benzColor.ShowColor(color);benzEngine.Run();benzEngine.Stop();}}//奔驰汽车发动机class BenzEngine{public void Run(){Console.WriteLine("Benz Running...");}public void Stop(){Console.WriteLine("Benz Stoped.");}}//奔驰汽车颜色class BenzColor{public void ShowColor(string color){Console.WriteLine($"{color} Benz");}}//本田汽车类class Honda{public string color { getset; }HondaEngine hondaEngine = new HondaEngine();HondaColor hondaColor = new HondaColor();public Honda(string color){this.color = color;}public void Drive(){hondaColor.ShowColor(color);hondaEngine.Run();hondaEngine.Stop();}}//本田汽车发动机class HondaEngine{public void Run(){Console.WriteLine("Honda Running...");}public void Stop(){Console.WriteLine("Honda Stoped.");}}//本田汽车颜色class HondaColor{public void ShowColor(string color){Console.WriteLine($"{color} Honda");}}//...其他种类汽车}

输出:

  • Red Benz

  • Benz Running...

  • Benz Stoped.


如果这样设计代码,确实是实现了单一职责,但是代码就显得非常臃肿,每添加一个种汽车类实现相同的逻辑都要添加好几个类(发动机,颜色...)

最后的结果就是"类爆炸"。

如何避免类爆炸?

找规律,找出相同的东西,封装起来(实现抽象)这就是依赖倒置原则。

抽象不应该依赖细节,细节应该依赖抽象。

汽车发动机、汽车颜色等等这种所有汽车都拥有的东西就是规律性的,只要相同的(行为,属性)都是可以抽象出来。

实现抽象:

using System;namespace A_CarJob{internal class Program{static void Main(string[] args){Benz benz = new Benz("Red""Benz");benz.Drive();Console.ReadKey();}}//奔驰汽车类class BenzCarColor{public string color { getset; }public string name { getset; }public Benz(string color, string name){this.color = color;this.name = name;}public override void Run(){Console.WriteLine($"{name} Running...");}public override void Stop(){Console.WriteLine($"{name} Stop.");}public override void ShowColor(string color){Console.WriteLine($"{color},{name}");}public void Drive(){ShowColor(color);Run();Stop();}}//抽象汽车发动机类public abstract class CarEngine{public abstract void Run();public abstract void Stop();}//抽象汽车颜色类public abstract class CarColorCarEngine{public abstract void ShowColor(string color);}//本田汽车类class Honda : CarColor{public override void Run(){throw new NotImplementedException();}public override void ShowColor(string color){throw new NotImplementedException();}public override void Stop(){throw new NotImplementedException();}}//...其他种类汽车}

你体会到代码的优雅性了吗?如需添加不同的汽车类只要继承抽象类(CarEngine和CarColor)就可以实现相同的逻辑。CarEngine和CarColor只需要写一次其他类都可以继承它们的属性和行为,做到了代码复用。

注意封装抽象的必备两个条件:

1、相同的,每个实体共有的属性或行为。

2、具有稳定性的,不会随意更改的属性和行为。

这个五个原则规范不需要要死记硬背,在代码编写时多尝试动手实践。在这五个原则的基础还可以深入了解23种软件设计模式​。理解其实现的逻辑原理,相信可以助你构建更加清晰和灵活的代码。


有阅读原文:https://mp.weixin.qq.com/s/j8eQMJ88ImbkS2qIHhiNAA


该文章在 2026/1/26 18:41:28 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved