一、枚举的定义
枚举类型 是由基础整型数值类型的一组命名常量定义的值类型。
System.Enum 类型是所有枚举类型的抽象基类。 它提供多种方法来获取有关枚举类型及其值的信息。 有关更多信息和示例,请参阅 System.Enum API 参考页。
可在基类约束中使用 System.Enum(称为枚举约束),以指定类型参数为枚举类型。 所有枚举类型也都满足 struct 约束,此约束用于指定类型参数为不可为 null 的值类型。
使用枚举的优点:
1.增加代码的可读性,使代码更加清晰;它允许使用描述性的名称表示整数值。
2.标准化业务归类、业务类型;有助于确保给变量指定合法的、期望的值。
使用场景:
数据分类,操作类型,订单状态/流程状态
二、枚举的使用
默认情况下,枚举成员的关联常数值为类型 int;
它们从零开始,并按定义文本顺序递增 1。
可以显式指定任何其他整数数值类型作为枚举类型的基础类型。
还可以显式指定关联的常数值。关键词 enum
enum Season
{
Spring,//标识0
Summer,//标识1
Autumn,//标识2
Winter //标识3
}
指定数字
enum ErrorCode : ushort
{
None = 0,
Unknown = 1,
ConnectionLost = 100,
OutlierReading = 200
}
三、枚举和数字的转换
数据类型转换:
//将枚举,转换成数字
int num = Season.春天.GetHashCode();
Console.WriteLine(num);
//将数字,转换成枚举
Season seson = (Season)System.Enum.ToObject(typeof(Season), 1);
常用操作封装:文章来源:https://www.toymoban.com/news/detail-569074.html
/// <summary>
/// 获取指定类型的int值得枚举对象
/// </summary>
/// <param name="value">值</param>
/// <param name="t">类型</param>
/// <returns></returns>
public static T ToObject<T>(int value)
{
Type t = typeof(T);
return (T)System.Enum.ToObject(t, value);
}
/// <summary>
/// 指定枚举的string值,获取枚举对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="value"></param>
/// <returns></returns>
public static T Parse<T>(string value)
{
return (T)System.Enum.Parse(typeof(T), value);
}
/// <summary>
/// 获取指定类型的枚举列表
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static Dictionary<int, string> GetList<T>()
{
Type t = typeof(T);
Dictionary<int, string> dic = new Dictionary<int, string>();
foreach (var item in System.Enum.GetValues(t))
{
dic.Add((int)item, System.Enum.GetName(t, item));
}
return dic;
}
// 获取name
public static string GetName<T>(int id)
{
Type t = typeof(T);
return System.Enum.ToObject(t, id).ToString();
}
public static List<object> GetNameList<T>()
{
Type t = typeof(T);
List<object> res = new List<object>();
foreach (var item in System.Enum.GetValues(t))
{
res.Add(new { id = (int)item, name = System.Enum.GetName(t, item) });
}
return res;
}
更多:文章来源地址https://www.toymoban.com/news/detail-569074.html
C# 去除字符串中的空格方案整理
C#数组分组_C#数据分组_C# Linq分组使用整理
C#时间使用整理,DateTime 使用整理
到了这里,关于C# 枚举使用整理_C# enum详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!