public enum UserType
{
  不可用 = 0,
  可用
}诸如此类。

解决方案 »

  1.   

    很少使用
    自定义描述
    [Description( "测试 ")] 
    one, 
    以名词或名词词组的复数来命名标志枚举。简单枚举应以单数的名词或名词词组命名
      

  2.   

    写成中文也可以,但在编码时速度太打折扣,比如SQL Server表名和列名都可以写成中文的,但写一个这种表的SQL语句是一件非常痛苦的事,所以基本上没人用中文
      

  3.   

    大家都不用?
    我怎么感觉中文方便些?
    比如说要输出到dropdownlistArray ar = Enum.GetValues(typeof(UserType));
    foreach(object o in ar)
      ddl.Items.Add(new ListItem(o.ToString(), Convert.ToInt16(o).ToString()));总比定义System.ComponentModel.Description,
    再用下面这种方法去取要方便些吧。
    /// <summary>
    /// 获取枚举值的详细文本
    /// </summary>
    /// <param name="e"></param>
    /// <returns></returns>
    public static string GetEnumDescription(object e)
    {
      //获取字段信息
      System.Reflection.FieldInfo[] ms = e.GetType().GetFields();    
        
      Type t = e.GetType();
      foreach(System.Reflection.FieldInfo f in  ms)    
      {
        //判断名称是否相等
        if(f.Name != e.ToString())continue;    //反射出自定义属性
        foreach(Attribute attr in  f.GetCustomAttributes(true))
        {
          //类型转换找到一个Description,用Description作为成员名称
          System.ComponentModel.DescriptionAttribute dscript = attr as System.ComponentModel.DescriptionAttribute;                            
          if(dscript != null)                    
            return     dscript.Description;
        }  }
                
                //如果没有检测到合适的注释,则用默认名称
                return e.ToString();
    }如果只是在编码的时候不方便,也没感觉出来呀。
      

  4.   

    也就这点方便,如果代码中频繁使用的话,就不方便了
    如果微软把DialogResult也全写成中文的,估计懂不懂中文的人都骂,毕竟几乎很少有人把DialogResult写到一个列表框中.