gpt4 book ai didi

c# - 正确命名 C# 的枚举值

转载 作者:行者123 更新时间:2023-11-30 13:25:17 26 4
gpt4 key购买 nike

你怎么看,有这样一个枚举是不是个好主意:

enum AvailableSpace {
Percent10,
Percent20,
SqF500,
SqF600
}

问题是关于值名称的语义,即百分比和平方英尺。我真的认为这不是一个好主意,但我找不到支持这一点的指导方针等。

编辑:这将用于确定实体的状态 - 即作为只读属性来描述对象的状态。如果我们知道总空间(即对象本身知道),我们可以选择在内部进行转换,因此我们要么只有百分比,要么只有平方英尺,要么两者都有。争论的焦点是,“两者”都不是一个好主意。

以上当然是一个例子,但真正的问题是一些数据提供商向我们发送总计(sq.f.)和其他百分比,我的目标是统一 UI。我可以随意做出一些近似值,因此将根据我们希望呈现信息的准确程度调整确切值。

问题只是关于值名称的语义,而不是内容 - 即,将百分比放入(可能的)int 枚举中是否是个好主意。

最佳答案

答案:不,使用枚举来表示值不是一个好主意。特别是两个语义不同的尺度中的值。您不应将枚举用于值。

原因:Percent10 和 SqF600 等两个量表的枚举值之间有什么关系?您如何扩展您可以在代码中表示的值列表?如何对这些值进行比较和算术运算?

建议(没有要求,但仍然在这里。:-)):包含两个字段的结构可以更好地反射(reflect)您正在尝试做的事情的语义 - 一个用于绝对面积,一个用于该绝对面积的可用百分比。使用这样的结构,您可以表示您可以用上面的枚举表示的任何内容。例如,为您提供绝对面积的数据提供者用具有面积和 100% 可用的结构表示。为您提供百分比的数据提供者用一个结构表示,该结构具有他们设置的百分比和绝对面积,这样该面积的百分比就是数据提供者想要报告的实际可用面积。您可以从两种类型的提供者处获得数据的“规范化”表示形式,并且可以添加几个运算符以启用与实例的比较和算术计算。

关于c# - 正确命名 C# 的枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/180266/

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