是否可以从方法返回枚举?

时间:2016-01-29 21:46:43

标签: c# enums

我有这个枚举:

    enum ControlsId
    {
        f1,
        f2
    }

我想从函数中返回枚举类型,如下所示:

    public enum GetPostBackControlId(string str)
    {
          if(str = "btn1")
             return ControlsId.f1
          if(str = "btn2")
             return ControlsId.f2
    }

是否可以从方法返回枚举?

2 个答案:

答案 0 :(得分:6)

public ControlsId GetPostBackControlId(string str)
{
      if(str == "btn1")
      {
         return ControlsId.f1;
      }
      else if(str == "btn2")
      {
         return ControlsId.f2;
      }
      return (ControlsId)17;
}

答案 1 :(得分:2)

我知道答案已经存在,但可能会更清洁。

public TEnum GetEnum<TEnum>(string content)
{
     return (TEnum)Enum.Parse(typeof(TEnum), content, true);
}

这种方法之美,它是通用的,高度可重复使用。只要该值存在,它就会解析为有效的enum。否则,它将抛出异常。但是如果你打算解析成enum,你往往会意识到这种类型。