从字符串中获取枚举值

时间:2013-04-27 15:17:18

标签: c#

我做了在线评估,我正在努力了解结果,这里有一个问题我已经做过了:

Change to method declaration

所以问题是:

enter image description here

enter image description here

并且报告说:

enter image description here

我不明白为什么我的答案被标记为部分正确,我错过了什么?此外,问题是这是一个字符串操作问题,虽然对我来说它与该主题无关。

更新

答案C不对,我误以为我使用的是var关键字,而不是实际的枚举。

2 个答案:

答案 0 :(得分:6)

您已勾选两个选项。你已经显示鼠标指针的那个很好,但另一个不是。

尝试一下,这样就可以了解原因。请注意,从.NET 4开始,Enum.TryParse<TEnum>是通用的,因此在某些方面不那么烦人。不幸的是,TryParse并不局限于迫使TEnum成为枚举类型......如果它是在C#中声明的话,它就不可能,但可能在IL中。如果您有兴趣,请参阅我的Unconstrained Melody project以获取替代方法。 (如果你只是想知道为什么你只得到部分功劳,我完全理解......)

(我同意这不是真正的“字符串操纵”。)

答案 1 :(得分:2)

问题询问哪一个将返回枚举。在那种情况下,第四种选择是正确的第三个选项将返回一个对象(尽管你的枚举将被封装在一个对象中)。

这里的诀窍是var。全部都分配到var。因此即使它返回一个对象或一个枚举,所有都被var接受。

这是证明。

enter image description here