建议130:以复数命名枚举类型,以单数命名枚举元素

枚举类型应该具有负数形式,它表达的是将一组相关元素组合起来的语义。比如:

    enum Week{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}

在这里,Week对于星期几来说,具备复数含义。如果我们将Week修改为Day,那么调用的代码会变成如下形式:

Day.Monday

它不会比下面的代码更简洁了:

Week.Monday

转自:《编写高质量代码改善C#程序的157个建议》陆敏技

转载于:https://www.cnblogs.com/jesselzj/p/4752406.html

编写高质量代码改善C#程序的157个建议——建议130:以复数命名枚举类型,以单数命名枚举元素...相关推荐

  1. 编写高质量代码改善C#程序的157个建议——建议148:不重复代码

    建议148:不重复代码 如果发现重复的代码,则意味着我们需要整顿一下,在继续前进. 重复的代码让我们的软件行为不一致.举例来说,如果存在两处相同的加密代码.结果在某一天,我们发现加密代码有个小Bug, ...

  2. 编写高质量代码改善C#程序的157个建议——建议86:Parallel中的异常处理

    建议86:Parallel中的异常处理 建议85阐述了如何处理Task中的异常.由于Task的Start方法是异步启动的,所以我们需要额外的技术来完成异常处理.Parallel相对来说就要简单很多,因 ...

  3. 编写高质量代码改善C#程序的157个建议——建议87:区分WPF和WinForm的线程模型...

    建议87:区分WPF和WinForm的线程模型 WPF和WinForm窗体应用程序都有一个要求,那就是UI元素(如Button.TextBox等)必须由创建它的那个线程进行更新.WinForm在这方面 ...

  4. 编写高质量代码改善C#程序的157个建议——建议127:用形容词组给接口命名

    建议127:用形容词组给接口命名 接口规范的是"Can do",也就是说,它规范的是类型可以具有哪些行为.所以,接口的命名应该是一个形容词,如: IDisposable表示可以被释 ...

  5. 编写高质量代码改善C#程序的157个建议——建议133:用camelCasing命名私有字段和局部变量...

    建议133:用camelCasing命名私有字段和局部变量 私有变量和局部变量只对本类型负责,它们在命名方式也采用和开放的属性及字段不同的方法.camelCasing很适合这类命名. camelCas ...

  6. 编写高质量代码改善C#程序的157个建议——建议104:用多态代替条件语句

    建议104:用多态代替条件语句 假设要开发一个自动驾驶系统.在设计之初,此自动驾驶系统拥有一个驾驶系统命令的枚举类型: enum DriveCommand{Start,Stop} 当前该枚举存在两个命 ...

  7. 编写高质量代码改善C#程序的157个建议——建议157:从写第一个界面开始,就进行自动化测试...

    建议157:从写第一个界面开始,就进行自动化测试 如果说单元测试是白盒测试,那么自动化测试就是黑盒测试.黑盒测试要求捕捉界面上的控件句柄,并对其进行编码,以达到模拟人工操作的目的.具体的自动化测试请学 ...

  8. 编写高质量代码改善C#程序的157个建议——建议50:在Dispose模式中应区别对待托管资源和非托管资源...

    建议50:在Dispose模式中应区别对待托管资源和非托管资源 真正资源释放代码的那个虚方法是带一个bool参数的,带这个参数,是因为我们在资源释放时要区别对待托管资源和非托管资源. 提供给调用者调用 ...

  9. 编写高质量代码改善C#程序的157个建议——建议9: 习惯重载运算符

    建议9: 习惯重载运算符 在开发过程中,应该习惯于使用微软提供给我们的语法特性.我想每个人都喜欢看到这样的语法特性: int x = 1; int y = 2; int total = x + y; ...

最新文章

  1. 近期活动盘点:首期AI Time PhD:清北师兄分享前沿研究成果、“科技驱动,正向创新”医工结合高峰论坛...
  2. Java对象的内存模型
  3. css和js实现3d图片,JavaScript_纯JS实现旋转图片3D展示效果,CSS:style type=text/cssgt - phpStudy...
  4. python与正则表达式(part2)--正则表达式的转义
  5. [PAT乙级]1022 D进制的A+B
  6. java程序员被误导的一个概念,Set也可以有序
  7. SpringCloud源码分析(一)--客户端搭建
  8. MFC- OnIdle空闲处理
  9. android照片添加gps,如何利用Exif为图片文件添加GPS坐标信息
  10. three.js场景中看不到模型/看不到阴影
  11. win7下linux 双系统安装教程,【系统安装】双系统——Win7下安装linux系统详细步骤...
  12. DB2 数据库密码过期
  13. kotlin-android-extensions过时了,迁移到ViewBinding
  14. 列举5种常见的计算机硬件主要有哪些,计算机硬件组成有哪些
  15. 网贷风控体系之-风控模型
  16. 日订单超1000万,美团外卖是如何设计广告推送系统的?
  17. 使用LaTeX的中文字体出现Package fontspec Error: The font “宋体“ cannot be found.解决方案
  18. web一阶段 day14
  19. Increasing trend of scientists to switch between topics论文翻译
  20. 理解D3中的数据连接(data join)和选取(selection)是怎么工作的

热门文章

  1. laravel常用响应操作
  2. Yii中使用的简单方法
  3. 你的灯亮着么阅读笔记3
  4. layout_gravity 和 gravity
  5. 断点续传和下载原理分析
  6. Spring Boot 2.1 版本变化[翻译]
  7. pycharm中更新pip版本的问题
  8. Hibernate 补充 ManyToOne、OneToMany、OneToOne的使用例
  9. 腾讯地图 qq.map 设置鼠标样式
  10. elasticdump elasticsearch数据备份与迁移 导入导出