vb.net - 可以对枚举值使用比较运算符吗?
问题描述
在 VB.Net 中,我通常像这样创建枚举:
Private Enum Zone
IsNegative = -3
IsBad = -2
IsError = -1
Undefined = 0 ' or Unknown, Nothing...
Value1
Value2
ValueN
End Enum
这看起来与Enum Framework Design Guidelines一致。最近,我开始确保Undefined
orNothing
值也获得分配的 0 值,以便如下比较正常工作:
Dim enu as Zone
If enu = Nothing Then ...
Nothing
为 0,这与 的Nothing
或Undefined
值匹配Enum
。通常,因为我总是将负值分配给错误、错误或某种错误的值,所以我也会进行如下比较:
If enu > 0 Then
' Perform something with the Zone Enum knowing it's a correct value
Else
' Handle the Enum error or correct its value
End If
这允许对 Enum 的所有值进行一次测试。
这是一种好习惯,还是我永远不应该在数字上比较枚举?是否有理由避免这种情况?
解决方案
枚举更多的是使用已知值的系统样式方法。您的方式没有错,但您仍然可以使用常量或其他一些变量或直接值,但是为了可读性和代码可维护性,建议您使用枚举器应该使用枚举器的方式。
If yourvalue = enu.Undefined then ...
推荐阅读
- youtube - 让 youtube-dl 等到直播开始
- android - 有没有办法使用 snapshotListener 收听 Firestore 中新创建的文档
- javascript - 调用带有和不带有 promise 的异步函数
- reactjs - 代码上传后如何避免古腾堡崩溃?
- python - KivyMD MDFileManager 仅显示图像文件,如何列出所有文件类型?
- php - 输出 ID 不在 foreach 循环中的行
- python - 在python中从列表到数据框的列名中找到类似的匹配项
- r - 带有“&”和“|”的否定词 在 data.tables "i" 参数中
- tensorflow - 具有 TFX 的模型中的 Tensorflow TextVectorization 层
- node.js - 达到池大小时收到通知