【发布时间】:2011-09-03 14:09:43
【问题描述】:
if (user.Access == (UserType)Enum.Parse(typeof(UserType), str, true))
我有一个频道机器人,它接受以下命令:
.add username usertype
现在我必须检查用户名是否已经具有该写入权限,但是当用户类型未完全写入 Enum 时,它总是会失败。
HeadAdmin 例如写成 headadmin 会导致以下错误:
System.NullReferenceException: Object reference not set to an instance of an object.
此外,如果我键入一个不存在的枚举,它会告诉我未找到值 X。
如何转换用户类型,如果匹配则返回 true,如果不匹配或不存在则返回 false?
【问题讨论】:
-
Enum.Parse 不会给出 NullReferenceException... 我相信“忽略大小写”选项通常可以正常工作。请展示一个简短但完整的程序来演示该问题。
-
TryParse帮助您解决第二个问题。不知道区分大小写的东西。你能发布显示问题的代码吗? -
向我们展示代码,否则我们无法为您提供帮助。
-
你是说如果你输入
HeadAdmin它工作正常,但如果你输入headadmin你得到一个NullReferenceException? -
@CodeInChaos 我无法访问此项目中的 .net 4,这似乎是 TryParse 存在于枚举中。
标签: c# enums type-conversion