C#中的枚举

举报
Andy阿辉 发表于 2022/02/22 20:57:27 2022/02/22
【摘要】 欢迎您成为我的读者,希望这篇文章能给你一些帮助。 前言今天咱们一起学习下枚举。在日常的业务编码过程中,由于对某些业务或状态进行区分,就使用到了C#中的枚举概念。枚举和之前学习的类或结构一样,是由程序员定义的类型。枚举是值类型,可直接存储数据;枚举只有一种类型成员,命名的整数值常量。 /// <summary> /// 车子分类 /// </summary> enum ...

欢迎您成为我的读者,希望这篇文章能给你一些帮助。

前言

今天咱们一起学习下枚举。

在日常的业务编码过程中,由于对某些业务或状态进行区分,就使用到了C#中的枚举概念。

枚举和之前学习的类或结构一样,是由程序员定义的类型。枚举是值类型,可直接存储数据;枚举只有一种类型成员,命名的整数值常量。

    /// <summary>
    /// 车子分类
    /// </summary>
    enum CarCategory
    {         
        Bike,
        Car,
        Train
    }

枚举是由关键字enum来定义的,每个枚举类型都有一个底层整数类型默认为Int。也就是说枚举中的值在存储时,其实存储的是整形数据(Int)。

比如上面的例子,Bike其实存储的是0,Car是1,Train是2。也可以直接通过CarCatgory[index]来取对应的枚举值。

具体代码如下所示:

    class Program
    {
        static void Main(string[] args)
        {          
            CarCategory entity = CarCategory.Bike;
            Console.WriteLine(entity);
            Console.WriteLine((int)entity);
             Console.ReadKey();   
        }
    }

枚举的特性

设置底层类型和显示值

可以把冒号和类型名放在枚举名之后,这样就可以使用int以外的整数类型(任何类型)。

    /// <summary>
    /// 车子分类
    /// </summary>
    enum CarCategory:byte
    {         
        Bike,
        Car,
        Train
    }

这里需要注意的是,成员常量的值可以是底层类型的任何值。也可以使用重复的值,但是在日常编码过程中尽量不适用重复值。

    /// <summary>
    /// 车子分类
    /// </summary>
    enum CarCategory:byte
    {         
        Bike=0x40,
        Car=0x10,
        Train=0x10
    }

上面的代码是显示的设置值,如果不设置默认为隐式设置。同时可以可以显示地赋值给任何成员常量,如果不初始化一个成员常量,编译器隐式地给它赋一个值。

枚举只有单一的成员类型:声明的成员常量。

  • 不能对成员使用修饰符。它们都隐式地具有和枚举相同的可访问性。
  • 由于成员是常量,即使在没有该枚举类型的变量时它们也可以访问。

寄语

人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。

原创不易,给个关注。

我是阿辉,感谢您的阅读,如果对你有帮助,麻烦点赞、转发 谢谢。

很高兴能和您成为朋友。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。