读书人

关于枚举显示中文字的有关问题

发布时间: 2012-08-09 15:59:21 作者: rapoo

关于枚举显示中文字的问题?
我现在想做一个登陆的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 ArrayStrLvName[(int)userLv];}        }    } 

读书人网 >C#

热点推荐