vb.net - 如何测试 String = Enum.Value?

标签 vb.net enums

如何对枚举值和应与枚举名称匹配的字符串进行简单比较?

如何将字符串解析为适当的枚举值。

例如,

Enum A
     B=0
     C=1
     D=2
End Enum

如何检查 String = A.C 以及如何将字符串转换为其相应的 A 值而不将其与字符串表示形式进行比较?

最佳答案

有几种不同的相关方法:

Enum.GetName(typeof(A), A.C) == "C"
A.C.ToString() == "C"
((A)Enum.Parse(typeof(A), "C")) == A.C

前两个将 A.C 的值转换为字符串表示形式 ("C"),然后将其与字符串进行比较。最后一个将字符串 "C" 转换为类型 A,然后作为实际类型 A 进行比较。

枚举到字符串:enumValue.ToString()Enum.GetName(typeof(A), A.C)

字符串到枚举:(A)Enum.Parse(typeof(A), "C")

请注意,如果枚举用 FlagsAttribute 标记,那么这些都不会真正起作用。

关于vb.net - 如何测试 String = Enum.Value?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/476931/

相关文章:

vb.net - 运行时错误 : Object expected not working inside of an if statement

vb.net - 如何从 MemoryStream 创建磁盘 (VB.net)

vb.net - 删除 GroupBox 内的控件

vb.net - VB.net 中的发布损坏

c++ - 在 cpp 和 hpp 文件中,在整个程序使用的 c++ 中在哪里声明枚举?

c++ - 键入安全枚举位标志

c# - 此代码的 VB.NET 等价物

swift - 从枚举数组中删除枚举,无论其参数如何

c# - 编译器在打开枚举后提示未分配的变量

c++ - 如果我在静态类中创建一个枚举,会有什么不同吗?