net设计规范(2)
1. 要把PascalCasing用于由多个单词构成的名字空间,类型以及成员的名字.
2. 要把camelCasing用于参数的名字.
3. 要把两个字母的首字母缩写词全部大写,除非是camelCasing风格参数名的第一个单词
System.IO
Public void StartIO(Stream ioStream)
4. 要把三个或三个以上字母组成的首字母缩写词的第一个字母大写。只有第一个字母大写,除非是camelCasing风格参数名的第一个单词.
System.Xml
Public void ProcessHtmlTag(string htmlTag)
5. Jeffrey Richter : 所有的字段为私有的,实例字段 m_ 前缀,静态字段 s_ 前缀
6. 要优先使用后缀而不是前缀来表示已有API的新版本
7. 要用名词或名词短语来给类和结构命名
8. 要用形容词短语给接口命名
9. 考虑在派生类的末尾使用基类的名字
10. 要用单数名词来命名枚举类型
11. 要用复数名词来命名表示位域的枚举类型
12. 要用动词或动词短语来命名方法
13. 要用名词,名词短语或形容词来命名属性
14. 要用描述集合中项目短语的复数形式来命名集合属性
15. 要用动词或动词短语来命名事件
16. 要用名词,名词短语或形容词来命名字段
17. 结构,枚举是值类型
18. 类,集合,数组,异常,修饰属性是引用类型
19. 如果该类型的实例比较小而且生命期比较短,或者经常被内嵌在其他对象中用结构
20. 如果需要提供多态层次结构的值类型用接口
21. 要为抽象类定义受保护的构造函数或内部构造函数
22. 要为值类型实现IEquatable<T>
23. 要优先使用枚举而不要使用静态常量
24. 要在想让一个类型能够访问外层类的成员时才使用嵌套类型
25. 要把最长的重载成员定义成重载成员中唯一的虚成员
26. 考虑使用属性—如果该成员表示类型的一种逻辑属性
27. 如果属性的值存储在进程内存中,而且提供属性的目的仅仅为了访问
28. 考虑通过索引器的方式让用户访问存储在内部数组中的数据
29. 考虑为代表元素集合的类型提供索引器
30. 要把静态构造函数声明为私有的
31. 要用受保护的虚方法来触发事件
32. 不要使用弱类型集合
33. 不要使用ArrayList或List<T> 要用Collection<>
34. 不要使用Hashtable或Dictionary<> 要用IDictionary<>
35. 要为值类型实现IEquatable<T>
36. 避免使用System.DBNull,要优先使用Nullable<T>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述