我开始研究大型 C# 代码库,并发现使用带有多个 const ints 字段的静态类。这个类的行为与枚举完全一样。
我想将类转换为实际的枚举,但权力被拒绝。我想转换它的主要原因是这样我可以将枚举作为数据类型而不是 int。这对可读性有很大帮助。
有什么理由不使用枚举而改用 const int 吗?
目前代码是这样的:
public int FieldA { get; set; }
public int FieldB { get; set; }
public static class Ids
{
public const int ItemA = 1;
public const int ItemB = 2;
public const int ItemC = 3;
public const int ItemD = 4;
public const int ItemE = 5;
public const int ItemF = 6;
}
不过,我认为应该改为以下内容:
public Ids FieldA { get; set; }
public Ids FieldB { get; set; }
我认为这里的许多答案都忽略了语义的含义enums
.
关于重构 - 当时间和业务限制允许时,当新的设计/实现比以前的实现有明显的好处并且风险得到充分理解时,清理代码是个好主意。在收益低或风险高(或两者兼而有之)的情况下,采取以下立场可能会更好“不要伤害”而不是“持续改进”。只有您才能判断哪种情况适合您的情况。
顺便说一下,一个案例neither enums or当 ID 表示外部存储(如数据库)中记录的标识符时,常量整数必然是一个好主意。在程序逻辑中对此类 ID 进行硬编码通常存在风险,因为这些值在不同环境(例如测试、开发、生产等)中实际上可能会有所不同。在这种情况下,在运行时加载值可能是更合适的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)