我需要命名空间范围的内容。所以我可以选择使用枚举,例如:
public enum Token
{
INFORMATIONAL,
WARNING,
ABORT,
FATAL
};
Run Code Online (Sandbox Code Playgroud)
但缺点是,例如在 WPF 中,我需要时不时地将它们转换为 int。
所以我想,为什么不呢
public static class Token
{
public const int
INFORMATIONAL = 0,
WARNING =1,
ABORT = 2,
FATAL = 3;
};
Run Code Online (Sandbox Code Playgroud)
在源代码中,它们看起来相同并且我没有转换问题。那么使用枚举的原因到底是什么?我显然错过了一些东西。枚举的原因是什么?
据我所知,枚举只有一个优点:类型安全。
编辑:他们还有 [Flag] 选项,有助于在一个变量中编码大量设置。感谢约翰提醒我。
有一篇关于原始痴迷的有趣文章(自从昨天了解到它以来,我真的很惊讶我经常链接到它)。
它适用于您的情况,如下所示:如果您只是在任何地方使用 Primitives,编译器就不会警告您太多。您可能会尝试将 42 分配给仅应分配给这些常量值之一的变量。
但是尝试将除有效值之外的任何值分配给枚举?很难/不可能偶然做到。