gpt4 book ai didi

c# - 另一个枚举与 int

转载 作者:太空宇宙 更新时间:2023-11-03 18:20:24 25 4
gpt4 key购买 nike

我需要命名空间范围的常量。所以我可以选择使用枚举,例如:

public enum Token
{
INFORMATIONAL,
WARNING,
ABORT,
FATAL
};

但缺点是,例如在 WPF 中,我需要时不时地将它们转换为 int。

所以我想,为什么不

public static class Token 
{
public const int
INFORMATIONAL = 0,
WARNING =1,
ABORT = 2,
FATAL = 3;
};

在源代码中,它们看起来一样,而且我没有转换问题。那么枚举的根本原因是什么?我显然错过了一些东西。枚举的原因是什么?

最佳答案

据我所知,枚举只有一个优点:类型安全。

编辑:他们还有 [Flag] 选项,这有助于在一个变量中编码大量设置。感谢约翰提醒我。

有一篇关于 Primitive Obession 的有趣文章(我真的很惊讶自从昨天得知它以来我经常链接它)。

它适用于你这样的情况:如果你只是在任何地方使用 Primtives,编译器就不会警告你那么多。您可能会尝试将 42 分配给一个变量,而该变量本应 分配给其中一个常量值。

但是试图将除有效值之外的任何值分配给枚举?很难/不可能偶然做到。

关于c# - 另一个枚举与 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58762796/

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