从官方文档中,赋值0给元素意味着"没有设置标志"(例如None = 0),那么我为什么要在枚举中使用它呢?没有它我可以声明一个枚举吗?
我试着写一个没有的枚举None = 0,编译成功了.
这是一个强烈的建议,而不是一个规则.遵循规则建议的充分理由:
一致性.这是微软自.NET第1天以来发布的建议的一部分,后面几乎是你在框架和第三方代码中找到的所有枚举.
它表示default(YourEnum)在枚举中定义了一个值.
这意味着YourEnum variable = 0(唯一的隐式枚举转换)具有在枚举中定义的值.
不遵守规则的理由:
它不会被任何编译器警告或错误强制执行
...
所以,是的,你可以,但我强烈建议不要这样做.
与基础数值类型的其他值不同,您可以获得没有显式强制转换的0s (如上面显示的项目符号).您将遇到这些值,因此您需要编写处理该值的代码.给它起个名字.给它的推荐名称.0
(当然,我还建议在所有与enum相关的代码中详尽无遗,并且有明智的方法来处理所有超出范围的值,但非0的只能通过显式转换获得)