Csharp/C#教程:如何避免使用枚举?分享


如何避免使用枚举?

在问这里问题之前 ,我从未认为(枚举)是“坏事”。 对于那些认为它们不是最佳实践的人,有哪些方法/模式可以避免在代码中使用它们?

编辑:

public Enum SomeStatus Approved = 1 Denied = 2 Pending =3 end Enum 

我喜欢海龟 类的枚举 。

在Fowler的Refactoring中描述了枚举的问题,它被认为是代码气味 。 它与类型安全无关,而是强迫您在代码中遍历switch语句,从而违反了DRY原则

State模式是同一结构的更好模型,因为它允许您在同一个类中实现和改变与相同状态相关的逻辑。 这也增加了内聚力并减少了类耦合。

我认为使用枚举是一件好事。 它提供强大的类型安全性。

它们有时会有一些缺点,但这通常与预先不知道每个可能选项的情况有关。 如果您有一组固定的选项,例如您的示例,那么强类型枚举是一件好事,不应该避免。

枚举的要点是它只在一个地方定义 (数据库术语中的规范化)。 如果这个枚举合法地是你正在写的课程的一部分,那么继续。

否则,特别是如果你发现自己多次声明它,重新考虑你的枚举是什么。 它实际上是否携带数据? 是否有足够的值来考虑将可能性存储在数据库中?

我喜欢在相关的值集上放置易于使用和理解的名称的枚举。 我只是不喜欢c#实现。 使用您的示例枚举:

 SomeStatus status = 17; 

这种编译和运行没有抱怨,即使17是超出界限。

delphi有更好的枚举(至少,它曾经使用过 – 自从我使用它以来已经好几年了)

上述就是C#学习教程:如何避免使用枚举?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/987854.html

(0)
上一篇 2021年12月23日
下一篇 2021年12月23日

精彩推荐