1
2
我在一个 dotnetfiddle :仅使用新成员即可:
将输出“北”。 编辑 只是说说实际情况 问题 您面临的是:向下兼容性。 我要做的是在启动时检查配置是否与当前程序版本兼容。如果没有:请执行“升级”功能(保存旧配置的备份,然后)将配置转换为当前版本并将其保存回磁盘。 |
2
2
关于不使用具有相同值的多个枚举标签的问题。总的来说,我同意。然而,在某些情况下,你可以说这确实有一定的道理。中的以下枚举。NET系统。图形库就是一个示例:
此枚举用于表示要对图像执行的旋转或“翻转”类型。请注意,有些值是相同的,例如,旋转180度相当于翻转X轴和Y轴。 即使在本例中,也可能有其他方法来表示枚举而不复制值,但此方法可能是最方便用户的方法。 我不认为复制值有任何内在的错误,事实上它是受支持的。但是,您无法在switch语句等结构中使用这些重复的枚举值。 |
3
1
您应该修改配置文件的解析器,以便在它成为问题之前解决这个问题。 您的程序一次只能有一个版本。按照现在的方式,您有两个版本的配置文件,并且您试图同时维护两个版本的代码。 处理旧版本配置文件的常规方法是在读取数据时将其转换为新格式,或者在第一次打开数据时检测数据并将其在磁盘上转换为新版本(可以选择通知用户)。 |
4
0
不能对枚举执行此操作。枚举的目的是使每个项具有不同的值,并且可以与其他项区分开来。为什么你会让Top和North是同一件事,而你可以总是使用North,避免另外有Top的混淆?我个人只会选择北、南、东和西,然后去掉其他的。 然而,据我所知,这应该是可行的:
|
5
0
如果没有两个单独的枚举,我无法理解为同一个枚举值使用两个不同标签的原因。首先要回答您的问题,您可以将枚举值强制转换为int,然后对int进行比较。。。
但我可能会考虑删除重复的值并使用两个枚举
如果你想在两者之间转换,你可以直接进行转换,例如:。
|
ZenBa2 · getopt未更改值C 2 年前 |
Waeez · 条件未满足php仍在运行 6 年前 |
Catz · 正在尝试打印正确数量的“*”以代替数值 6 年前 |
privilegedMale · switch语句中的扫描仪问题 6 年前 |
rasilvap · 具有多个参数的开关箱 6 年前 |
RudziankoÅ · 不可能的类型切换情况:不能有动态类型 6 年前 |
Leo Thomas · 循环case语句而不退出shell脚本 6 年前 |