如何解析一个空到空在枚举.parse
本文关键字:枚举 parse 一个 何解析 | 更新日期: 2023-09-27 18:09:01
这是我的代码:
return (Skills) Enum.Parse(typeof(Skills), CSData[(int)cs].Requirement);
但由于有时没有要求(即值为null),我想在这种情况下解析值为null,我怎么能做到呢?
问题是,枚举是不可空的值类型。因此,从逻辑上讲,你不能像你说的那样"将null解析为null"。
你能做的,是改变你的方法的返回类型为一个可空的Skills
。
public Skills? MyMethod(string str)
{
return (str == null)
? null as Skills?
: (Skills) Enum.Parse(typeof(Skills), str);
}
使用Enum。取而代之的是TryParse——它返回一个布尔值,告诉你解析是否成功,而不是抛出异常。然后您可以采取相应的行动。
作为dcastros答案的替代方案,您可以引入额外的enum值,例如Skills.Unknown
,以避免在代码中进一步检查null。
return String.IsNullOrEmpty(str) ? Skills.Unknown : (Skills)Enum.Parse(typeof(Skills), str);