c# 枚举
命名空间: System
程序集: mscorlib(mscorlib.dll 中)
定义一个枚举类型
public enum Week { [Description("星期一")] //枚举描述 Monday=1, //设置枚举的成员常量值 [Description("星期二")] Tuesday=2, [Description("星期三")] Wednesday =3, [Description("星期四")] Thursday=4, [Description("星期五")] Friday=5, [Description("星期六")] Saturday=6, [Description("星期七")] Sunday=7 }
备注:
1.成员的值可以一样的,但是成员不行
例如:你可以设置 public enum Week{Monday=1,Tuseday=1}
但是你不可以出现有两个成员是一样的,例如:public enum Week{Monday=1,Monday=2,Tuseday=3}
2. Console.WriteLine((int)EnumDemo.Week.Friday);//输出 5
3. string[] array1 = Enum.GetNames(typeof(EnumDemo.Week));
Console.WriteLine(array1[1]); //输出Tuesday
Enum.GetNames 方法 (Type) ,检索指定枚举中常数名称的数组。
参数enumTypeType: System.Type枚举类型。
返回值Type: System.String[]enumType 的常数名称的字符串数组。
4. Array array2 = Enum.GetValues(typeof(EnumDemo.Week));
Console.WriteLine(array2.GetValue(1)); //输出:Tuesday
Enum.GetValues 方法(Type)
参数enumTypeType: System.Type
返回值Type: System.Array
4. Type t = Enum.GetUnderlyingType(typeof(EnumDemo.Week));
Console.WriteLine(t); //输出 System.Int32
Enum.GetUnderlyingType 方法 (Type)
参数enumType,基础类型将被检索的枚举。
返回值Type: System.Type enumType 的基础类型
6. //由值获取内容
int i = 1;
string Name = Enum.Parse(typeof(EnumDemo.Week), i.ToString()).ToString();
Console.WriteLine(Name);//输出:Monday
7. //由内容获得值
string Name2 = "Monday";
int j = Convert.ToInt32(Enum.Parse(typeof(EnumDemo.Week), Name2));
Console.WriteLine(j);//输出:1
8.
Dictionary<string, int> Sexlist = new Dictionary<string, int>();
string[] keys = Enum.GetNames(typeof(EnumDemo.Week));
Array values = Enum.GetValues(typeof(EnumDemo.Week));
for (int i = 0; i < keys.Length; i++)
{
Sexlist.Add(keys[i], (int)values.GetValue(i));
}
9.
/// <summary>
/// 获取描述信息
/// </summary>
/// <param name="en"></param>
/// <returns></returns>
public static string description( Enum en)
{
Type type = en.GetType();
MemberInfo[] memInfo = type.GetMember(en.ToString());
if (memInfo != null && memInfo.Length > 0)
{
object[] attrs = memInfo[0].GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), false);
if (attrs != null && attrs.Length > 0)
return ((DescriptionAttribute)attrs[0]).Description;
}
return en.ToString();
}
Console.WriteLine(description(EnumDemo.Week.Friday));//输出:星期五
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?