枚举类型定义字符串

因为枚举类型不能够直接定义string类型的变量,所以在这里采取一个变通的方法 

首先 定义一个枚举类型

  enum enumDateName
        {
            [Description("收款金额")]
            CollectionDetails,
            [Description("代付关税")]
            PaidTariff,
            [Description("垫付费用")]
            AdvanceExtendFee,
            [Description("超期")]
            AdvanceExtendFees,
            [Description("到账利润")]
            AccountProfit
        }

定义一个方法取值   程序中用到的是Description中的内容,所以这里面写了一个方法来取到这个枚举类型中的Description中的内容      

        /// <summary>
        /// 读取枚举类型的描述信息
        /// </summary>
        /// <param name="e"></param>
        /// <returns></returns>
        private string GetEnumDesc(enumDateName e)
        {
            FieldInfo EnumInfo = e.GetType().GetField(e.ToString());
            DescriptionAttribute[] EnumAttributes = (DescriptionAttribute[])EnumInfo.GetCustomAttributes(typeof(DescriptionAttribute), false); 

if (EnumAttributes.Length > 0) { return EnumAttributes[0].Description; } return e.ToString(); }

这个方法传入的参数是一个类似于enumDateName.CollectionDetails这样的参数,返回值是他对应的描述信息,

最后方法的调用

if ( GetEnumDesc(enumDateName.CollectionDetails)=="收款金额")  
{
//do something

}

OK 这样就可以把对应的字符串用枚举类型表示出来了

posted @ 2013-08-28 17:05  Flying_Boy  阅读(2367)  评论(3编辑  收藏  举报