加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#枚举相关用法

发布时间:2020-12-16 01:24:50 所属栏目:百科 来源:网络整理
导读:什么是枚举? 枚举是一组命名整型常量。枚举类型是使用? enum ?关键字声明的。枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。 定义枚举 : public enum Direction{ [Description("东")] East,[Description("南")] South,[Description("

什么是枚举?

  枚举是一组命名整型常量。枚举类型是使用?enum?关键字声明的。枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。

定义枚举

public enum Direction
{
    [Description("东")]
    East,[Description("南")]
    South,[Description("西")]
    West,[Description("北")]
    North 
}

默认枚举的int值从零开始,枚举的下一项int值会自动累加上一个枚举项的值。例如:East = 1,则South=2,West=3,以此类推。。。 或East = 4,则South=5,West=7,North=8。。。

获取枚举的int值:

var eastNumber = (int)Direction.East;
// eastNumber = 0;

获取枚举字符串:

var eastString = Direction.East.ToString();
// eastString= "East";

int转枚举:

var east = (Direction)0;
// east = Direction.East

string转枚举:

const string strEnum = "East";
// ignoreCase: true/false (是否忽略大小写。true:忽略大小写(默认),false: 不忽略)
var east = Enum.Parse(typeof(Direction),strEnum,ignoreCase: true);
// east = Direction.East;

获取枚举的描述(Description):

/// <summary>
/// 获取枚举描述的方法
/// </summary>
/// <param name="enumValue"></param>
/// <returns></returns>
public static string GetEnumDescription(Enum enumValue)
{
    string value = enumValue.ToString();
    FieldInfo field = enumValue.GetType().GetField(value);
    object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute),false);    //获取描述属性
    if (objs.Length == 0)    //当描述属性没有时,直接返回名称
        return value;
    DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
    return descriptionAttribute.Description;
}
// 调用获取枚举描述的方法
var description = GetEnumDescription(Direction.East);
// description = "东";    

枚举的循环:

foreach (Direction item in Enum.GetValues(typeof(Direction)))
{
    // item is East/South/West/North
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读