|
1
2
我在一个 dotnetfiddle :仅使用新成员即可:
将输出“北”。 编辑 只是说说实际情况 问题 您面临的是:向下兼容性。 我要做的是在启动时检查配置是否与当前程序版本兼容。如果没有:请执行“升级”功能(保存旧配置的备份,然后)将配置转换为当前版本并将其保存回磁盘。 |
|
|
2
2
关于不使用具有相同值的多个枚举标签的问题。总的来说,我同意。然而,在某些情况下,你可以说这确实有一定的道理。中的以下枚举。NET系统。图形库就是一个示例:
此枚举用于表示要对图像执行的旋转或“翻转”类型。请注意,有些值是相同的,例如,旋转180度相当于翻转X轴和Y轴。 即使在本例中,也可能有其他方法来表示枚举而不复制值,但此方法可能是最方便用户的方法。 我不认为复制值有任何内在的错误,事实上它是受支持的。但是,您无法在switch语句等结构中使用这些重复的枚举值。 |
|
|
3
1
您应该修改配置文件的解析器,以便在它成为问题之前解决这个问题。 您的程序一次只能有一个版本。按照现在的方式,您有两个版本的配置文件,并且您试图同时维护两个版本的代码。 处理旧版本配置文件的常规方法是在读取数据时将其转换为新格式,或者在第一次打开数据时检测数据并将其在磁盘上转换为新版本(可以选择通知用户)。 |
|
4
0
不能对枚举执行此操作。枚举的目的是使每个项具有不同的值,并且可以与其他项区分开来。为什么你会让Top和North是同一件事,而你可以总是使用North,避免另外有Top的混淆?我个人只会选择北、南、东和西,然后去掉其他的。 然而,据我所知,这应该是可行的:
|
|
|
5
0
如果没有两个单独的枚举,我无法理解为同一个枚举值使用两个不同标签的原因。首先要回答您的问题,您可以将枚举值强制转换为int,然后对int进行比较。。。
但我可能会考虑删除重复的值并使用两个枚举
如果你想在两者之间转换,你可以直接进行转换,例如:。
|
|
|
H.v.M. · 为最后一个枚举值指定不同的变量值 4 年前 |
|
|
JimmyDiJim · 在声明后定义枚举变量 8 年前 |
|
|
Eli K · 语法错误,插入“{”以完成枚举体(在类的末尾) 8 年前 |
|
|
Vivek Shukla · 在中间添加枚举 8 年前 |
|
|
DannyD · 如何访问typescript中的枚举名称 8 年前 |