随笔 - 631  文章 - 75  评论 - 186  阅读 - 143万

C#中的枚举类型(enum type)

ylbtech- .NET-Basic: C#中的枚举类型(enum type)

 C#中的枚举类型(enum type)

1.A,相关概念返回顶部
 
   枚举类型(enum type)是具有一组命名常量的独特的值类型。在以下示例中:
enum Color
{ 
    Red,
    Green,
    Blue
}

  声明一个名为 Color 的枚举类型,该类型具有三个成员:Red、Green 和 Blue。

  枚举具体是怎么声明呢?枚举声明用于声明新的枚举类型。枚举声明以关键字 enum 开始,然后定义该枚举类型的名称、可访问性、基础类型和成员。具体格式:

  修饰词(new、public、protected、internal、private)enum 枚举类型名:整数类型

{ 
    enum-member-declarations,
    enum-member-declaration
}
1.B,测试源代码返回顶部
  
  枚举类型一般用于列出唯一的元素,如一周的各天、国家/地区名称,等等。下面的示例代码声明并使用一个名为 Color 的枚举类型,该枚举类型有三个常数值 Red、Green 和 Blue。
复制代码
using System;

namespace ConsoleApplication1
{
    enum Color
    { 
        Red,
        Green,
        Blue
    }
    class EnumTypeExample
    {
        static void PrintColor(Color color)
        {
            switch (color)
            { 
                case Color.Red:
                    Console.WriteLine("Red");
                    break;
                case Color.Green:
                    Console.WriteLine("Green");
                    break;
                case Color.Blue:
                    Console.WriteLine("Blue");
                    break;
                default:
                    Console.WriteLine("Unknown color");
                    break;
            }
        }
        static void Main(string[] args)
        {
            Color c = Color.Red;
            PrintColor(c);
            PrintColor(Color.Blue);
        }
    }
}
复制代码

//Execation Result

Red
Blue
请按任意键继续. . .

 1.B.2, 一个枚举的关联值或隐式地、或显示地被赋值。如果枚举成员的声明中具有 constant-expression 初始值设定项,则该常量表达式的值(它隐式转换为枚举的基础类型)就是该枚举成员的关联值。如果枚举成员的声明不具有初始值设定项,则它的关联值按下面规则隐式地设置:

  如果枚举成员是在枚举类型中声明的第一个枚举成员,则它的关联值为零。否则,枚举成员的关联值是通过将前一个枚举成员(按照文本顺序)的关联值加 1 得到的。这样增加后的值必须在该基础类型可表示的值范围内;否则,会出现编译时错误。有关枚举类型成员关联值赋值案例,参考下例:

复制代码
using System;

namespace Test
{
    public enum Day : uint  //如果不设置数据类型,默认为 int
    { Mon=1,Tue=2,Wed=3,Thu=4,Fri=5,Sat,Sun}
    class EnumType
    {
        public static void Main(string[] args)
        {
            Console.WriteLine(ChooseDay(Day.Sun));
            Console.WriteLine(ChooseDay(Day.Mon));
        }
        static string ChooseDay(Day d)
        {
            string tmp = string.Empty;
            switch (d)
            { 
                case Day.Mon:
                    tmp = string.Format("你选择一周中的第{0}天(即周一),工作",(uint)d);
                    break;
                case Day.Tue:
                    tmp = string.Format("你选择一周中的第{0}天(即周二),工作", (uint)d);
                    break;
                case Day.Wed:
                    tmp = string.Format("你选择一周中的第{0}天(即周三),工作", (uint)d);
                    break;
                case Day.Thu:
                    tmp = string.Format("你选择一周中的第{0}天(即周四),工作", (uint)d);
                    break;
                case Day.Fri:
                    tmp = string.Format("你选择一周中的第{0}天(即周五),工作", (uint)d);
                    break;
                case Day.Sat:
                    tmp = string.Format("你选择一周中的第{0}天(即周六),休息", (uint)d);
                    break;
                case Day.Sun:
                    tmp = string.Format("你选择一周中的第{0}天(即周日),休息", (uint)d);
                    break;
                default:
                    tmp = "不合法";
                    break;
            }
            return tmp;
        }
    }
}
复制代码

//Execation Result

你选择一周中的第7天(即周日),休息
你选择一周中的第1天(即周一),工作
请按任意键继续. . .
1.C,资源下载返回顶部

warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on   ylbtech  阅读(79959)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示