在vb.net中,我得到了一个定义为整数的枚举:
Enum enUtilityTypeDetailStudentEntryWorkflow As Integer
enUTDSEW_Default = 379
enUTDSEW_ApplicantRecordBook = 380
End Enum
我想将Enum直接分配给变量,但它不起作用。
EntryWorkflowLookUpEdit.EditValue = enUtilityTypeDetailStudentEntryWorkflow.enUTDSEW_Default
我最终使用了CType并将其转换为Integer。
EntryWorkflowLookUpEdit.EditValue = CType(enUtilityTypeDetailStudentEntryWorkflow.enUTDSEW_Default, Integer)
这有效,但它会给代码增加很多噪音,看起来Enum已被定义为Integer,让我想一想,为什么我必须再次分配它?
有没有其他方法可以在没有噪音的情况下实现这一目标? 我知道我在这里遗漏了一些东西。
非常感谢。
答案 0 :(得分:3)
枚举被定义为使用整数作为其基础类型。
好事这是一个明确的转换IMO,因为这意味着你不会意外地最终使用枚举值,你真正意味着只使用直整数。枚举的目的是有效地对数字有不同的“观点” - 并且改变你正在使用的“观点”应该是明确的。
我希望在大多数代码库中都有相对这样的转换。
如果这对您来说成为一个重要问题,您总是可以编写ToInt32
或类似的扩展方法,只执行演员表。
就个人而言,如果我试图减少此代码中的噪音,我会尝试找到一个比enUtilityTypeDetailStudentEntryWorkflow
更短的名称 - 并且同时符合.NET命名约定。