从字符串中获取枚举值

我做了一个在线评估,我正在尝试理解结果,这里我已经做过一个问题:

更改方法声明

所以问题是:

在此处输入图像描述

在此处输入图像描述

报告说:

在此处输入图像描述

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

马尔科

UPDATE

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

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

试一试,这样你就能明白为什么。 请注意,从.NET 4开始, Enum.TryParse是通用的,因此在Enum.TryParse不那么烦人。 不幸的是, TryParse并不TEnum强制TEnum成为枚举类型……如果它是在C#中声明的话,它就不可能,但可能在IL中。 如果您有兴趣,请参阅我的Unconstrained Melody项目,了解替代方法。 (如果你只是想知道为什么你只得到部分功劳,我完全理解……)

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

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

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

这是证据。

在此处输入图像描述