gpt4 book ai didi

c# - 为什么枚举中的位置标记(如第一个或最后一个)被认为是不好的做法?

转载 作者:太空狗 更新时间:2023-10-29 23:01:07 24 4
gpt4 key购买 nike

根据 System.Enum 类的 MSDN 文档的最佳实践部分:

Do not define an enumeration value solely to mirror the state of the enumeration itself. For example, do not define an enumerated constant that merely marks the end of the enumeration. If you need to determine the last value of the enumeration, check for that value explicitly. In addition, you can perform a range check for the first and last enumerated constant if all values within the range are valid.

如果我理解正确,我们不应该像下面这样声明一个枚举。

public enum DrawOrder
{
VeryBottom = 0,
Bottom = 1,
Middle = 2,
Top = 3,
Lowest = VeryBottom, //marks a position in the enum
Highest = Top, //marks a position in the enum
}

为什么这被认为是不好的做法?

最佳答案

因为这些值可能会随着时间而改变。假设您将一个属性设置为(使用您的示例)DrawOrder.Highest 并将其存储在您的数据库/文档/other-data-sink 中。

时间流逝。

代码更改。

您的 DrawOrder 枚举已获得更多值,并且您的持久化数据中的值现在不再等于 DrawOrder.Highest。它只等于数据持久化时映射到的 DrawOrder.Highest

您认为这种情况有可能造成问题吗?

关于c# - 为什么枚举中的位置标记(如第一个或最后一个)被认为是不好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12429897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com