日期:2014-05-18  浏览次数:20951 次

关于枚举显示中文字的问题?
我现在想做一个登陆的Form,登陆类型在comboBox中都是汉字的..我想使用一个枚举
C# code

    public enum Users
    {
        普通用户,
        其它管理员,
        超级管理员
    }


这样感觉不太好,可以用别的方法实现吗?比方说管理员用admin但是转换到comboBox中会显示为超级管理员?

------解决方案--------------------
就是这么两三个选项的话 直接 写 if else判断就可以了啊

加了枚举 还需要转换类型的
------解决方案--------------------
C# code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NS.Entity
{
    /// <summary>
    /// 查询时用到的用户状态枚举
    /// </summary>
    public enum UserStatus
    {
        /// <summary>
        /// 用户处于被禁用状态
        /// </summary>
        Forbidden=1,
        /// <summary>
        /// 用户处于被启用状态
        /// </summary>
        Active=2,
        /// <summary>
        /// 查询所有用户,此值不可作为类属性值设置,仅用于查询
        /// </summary>
        All=3
    }
    /// <summary>
    /// 查询时用到的分类状态枚举
    /// </summary>
    public enum CatalogStatus
    {
        /// <summary>
        /// 栏目被禁用
        /// </summary>
        Forbidden = 1,
        /// <summary>
        /// 栏目处于启用状态
        /// </summary>
        Active = 2,
        /// <summary>
        /// 所有状态的栏,此值不可作为类属性值设置,仅用于查询
        /// </summary>
        All = 3
    }
    /// <summary>
    /// 查询时用到的文章状态
    /// </summary>
    public enum ArticleStatus
    {
        /// <summary>
        /// 栏目处于隐藏状态
        /// </summary>
        Forbidden = 1,
        /// <summary>
        /// 文章处于可见状态
        /// </summary>
        Active = 2,
        /// <summary>
        /// 所有状态的文章,此值不可作为类属性值设置,仅用于查询
        /// </summary>
        All = 3
    }
    /// <summary>
    /// 查询的排序方式,如升序或者降序
    /// </summary>
    public enum OrderBy
    {
        /// <summary>
        /// 按照升序排列
        /// </summary>
        ASC=1,
        /// <summary>
        /// 按照降序排列
        /// </summary>
        DESC=2
    }
}

------解决方案--------------------
虽然用中文编译没有问题,但是让人感觉很别扭,我习惯采用英文命名,使用中文XML注释,类似我上面的代码。
------解决方案--------------------
第一种
if(comboBox.SelectedIndex==1)
{
普通用户
}
else if(comboBox.SelectedIndex==2)
{
其它管理员
}
else
{
超级管理员
}

第二种
if(comboBox.SelectedText=="普通用户")
{
普通用户
}
else if(comboBox.SelectedText=="其它管理员")
{
其它管理员
}
else
{
......
}
------解决方案--------------------
做个关联不就可以了。我忘记了C#代码是不是这样写的,大概意思意思,如果概念搞错,写错就算我出丑一下。哈哈
搞得语言太多,很容易串门的。哎
C# code

    public enum UserLv
    {
        Default=0,
        Manager=1,
        Admin=2
    }
    
    public class User
    {
        ///......
        public User(UserLv){
            
        }
        String[] ArrayStrLvName = {"普通用户",
        "其它管理员",
        "超级管理员"
}
        ///层次名字
        public string UserLvName
        {
           get{ return ArrayStrLvName[UserLv];}
        }
    }

------解决方案--------------------
算了还是严禁点,不然误导新人就麻烦了
C# code

public enum UserLv
    {
        Default=0,
        Manager=1,
        Admin=2
    }
    
    public class User
    {
        ///......
        UserLv userLv;
        public User(UserLv userLv)
        {
            this.userLv = userLv
        }
        String[] ArrayStrLvName = {"普通用户",
        "其它管理员",
        "超级管理员"};

        ///层次名字
         public string UserLvName
        {
           get{ return ArrayS