从字符串中获取枚举值
我做了一个在线评估,我正在尝试理解结果,这里我已经做过一个问题:
更改方法声明
所以问题是:
报告说:
我不明白为什么我的答案被标记为部分正确,我错过了什么? 此外,问题是这是一个字符串操作问题,虽然对我来说它与该主题无关。
马尔科
UPDATE
答案C不对,我误以为我使用的是var关键字,而不是实际的枚举。
你已经勾选了两个选项。 你已经显示鼠标指针的那个很好,但另一个不是。
试一试,这样你就能明白为什么。 请注意,从.NET 4开始, Enum.TryParse
是通用的,因此在Enum.TryParse
不那么烦人。 不幸的是, TryParse
并不TEnum
强制TEnum
成为枚举类型……如果它是在C#中声明的话,它就不可能,但可能在IL中。 如果您有兴趣,请参阅我的Unconstrained Melody项目,了解替代方法。 (如果你只是想知道为什么你只得到部分功劳,我完全理解……)
(我同意这不是真正的“字符串操纵”。)
问题询问哪一个将返回枚举。 在那种情况下,第四种选择是正确的 第三个选项将返回一个对象(尽管您的枚举将封装在一个对象中)。
这里的诀窍是var
。 所有都分配给var
。 所以,即使它返回一个对象或一个枚举,所有都被var
接受。
这是证据。