none
如何检测一个值是否可以转化为某种枚举类型? RRS feed

  • 问题

  • 我想判断某个值是否可以转换为已定义的一种枚举类型如

      enum FundType{Open, Money, Close, Forecast };

      string fundType = Request.QueryString["fundType"];//0,1,2,3

      应该如何判断fundType 值的有效性 


    拒绝垃圾代码
    2010年12月9日 2:20

答案

  •  public enum FundType{Open, Money, Close, Forecast };
    
      public partial class WebForm3 : System.Web.UI.Page
      {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
    
        protected void Button1_Click(object sender, EventArgs e)
        {
          string fundType = "Money";
          try
          {
            FundType test = (FundType)Enum.Parse(typeof(FundType),fundType);
            Response.Write("成功");
          }
          catch (Exception)
          {
    
            Response.Write("失败");
          }
         
        }
      }
    

    http://blog.csdn.net/zx13525079024
    2010年12月9日 10:18
  • 您好,请参考:

    1、如果用字符串:

        bool isValid = System.ComponentModel.TypeDescriptor.GetConverter(typeof(FundType)).IsValid("Open");


    2、如果用数字:

       bool isValid = System.ComponentModel.TypeDescriptor.GetConverter(typeof(MarqueeLightShape)).IsValid(0);

    2010年12月9日 13:29
    版主
  • dear
    你可使用 Enum.TryParse()来判断字串能否转成enum

          FundType result;//转换结果
          if (Enum.TryParse(fundType, out result))
          {
            //转换成功
          }
    


    [入門][Enum] Enum 詳論
    http://www.dotblogs.com.tw/johnny/archive/2010/01/25/13300.aspx

    [Enum的轉換,用Enum.Parse()]
    http://www.dotblogs.com.tw/wei314/archive/2009/12/30/12739.aspx

    [[C#]將string轉為enum Convert String To Enum]
    http://www.dotblogs.com.tw/dotjum/archive/2008/02/10/1055.aspx

    希望对您有帮助
    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    • 已建议为答案 mazhou 2010年12月10日 6:34
    • 已标记为答案 mldarkMember 2010年12月12日 17:07
    2010年12月10日 1:52

全部回复

  •  public enum FundType{Open, Money, Close, Forecast };
    
      public partial class WebForm3 : System.Web.UI.Page
      {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
    
        protected void Button1_Click(object sender, EventArgs e)
        {
          string fundType = "Money";
          try
          {
            FundType test = (FundType)Enum.Parse(typeof(FundType),fundType);
            Response.Write("成功");
          }
          catch (Exception)
          {
    
            Response.Write("失败");
          }
         
        }
      }
    

    http://blog.csdn.net/zx13525079024
    2010年12月9日 10:18
  • 您好,请参考:

    1、如果用字符串:

        bool isValid = System.ComponentModel.TypeDescriptor.GetConverter(typeof(FundType)).IsValid("Open");


    2、如果用数字:

       bool isValid = System.ComponentModel.TypeDescriptor.GetConverter(typeof(MarqueeLightShape)).IsValid(0);

    2010年12月9日 13:29
    版主
  • dear
    你可使用 Enum.TryParse()来判断字串能否转成enum

          FundType result;//转换结果
          if (Enum.TryParse(fundType, out result))
          {
            //转换成功
          }
    


    [入門][Enum] Enum 詳論
    http://www.dotblogs.com.tw/johnny/archive/2010/01/25/13300.aspx

    [Enum的轉換,用Enum.Parse()]
    http://www.dotblogs.com.tw/wei314/archive/2009/12/30/12739.aspx

    [[C#]將string轉為enum Convert String To Enum]
    http://www.dotblogs.com.tw/dotjum/archive/2008/02/10/1055.aspx

    希望对您有帮助
    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    • 已建议为答案 mazhou 2010年12月10日 6:34
    • 已标记为答案 mldarkMember 2010年12月12日 17:07
    2010年12月10日 1:52