gpt4 book ai didi

c# - 为什么我更喜欢枚举而不是具有常量值的结构

转载 作者:IT王子 更新时间:2023-10-29 04:04:59 25 4
gpt4 key购买 nike

具有常量的结构:

public struct UserType
{
public const int Admin=1;
public const int Browser=2;
public const int Operator=3;
}

现在让我们为同样的目的使用一个枚举:

public enum UserType
{
Admin=1,
Browser,
Operator
}

两者都分配在栈上。在这两种情况下,我都会说 UserType.Admin。通过结构方式,我不必强制转换为 int 来获取基础值。我知道使用枚举版本可以保证使用三个值中的一个且仅使用一个,而使用结构版本可以是任何整数used,表示 Int32.MinValue 和 Int32.MaxValue 之间的任意值。除了这个之外,首选枚举还有其他好处吗?

最佳答案

Is there any other benefit of preferring enums besides this one?

清晰度。

假设您有一个字段或方法参数,它始终具有这三个值之一。如果将其设为枚举类型,则:

  • 你不能不小心给它分配了一些任意的整数值。 (您可以故意将任何 int 值转换为枚举类型,但您必须明确地这样做。)
  • 很清楚这个值代表的是什么类型的信息

这些是令人难以置信编写易于在将来维护的代码的重要好处。您越能让您的代码自然地描述您想要实现的目标,就越好。

关于c# - 为什么我更喜欢枚举而不是具有常量值的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13429156/

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