• C#指南,重温基础,展望远方!(10)C#枚举


    枚举类型是包含一组已命名常量的独特值类型 需要定义包含一组离散值的类型时,可以定义枚举。 枚举使用一种整型值类型作为其基础存储, 并提供离散值的语义含义。

    以下示例声明并使用名为“Color”的 enum 类型,其中包含三个常量值(RedGreen 和 Blue)。

    C#
    using System;
    enum Color
    {
        Red,
        Green,
        Blue
    }
    class EnumExample
    {
        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() 
        {
            Color c = Color.Red;
            PrintColor(c);
            PrintColor(Color.Blue);
        }
    }
    

    每个 enum 类型都有对应的整型类型(称为 enum 类型的基础类型。 如果 enum 类型未显式声明基础类型,则基础类型为 int。 enum 类型的存储格式和可取值范围由基础类型决定。 enum 类型需要使用的一组值不受其 enum 成员限制。 尤其是,基础类型的 enum 的任何值都可以显式转换成 enum 类型,并作为 enum 类型的不同有效值。

    以下示例声明基础类型为 sbyte 且名为“Alignment”的 enum 类型。

    C#
    enum Alignment: sbyte
    {
        Left = -1,
        Center = 0,
        Right = 1
    }
    

    如上面的示例所示,enum 成员声明可以包含用于指定成员值的常数表达式。 每个 enum 成员的常量值都必须介于 enum 的基础类型范围内。 如果 enum 成员声明未显式指定值,那么会为成员指定值 0(如果是 enum 类型中的首个成员)或原文前一个 enum 成员的值加 1。

    可使用类型显式转换功能将 Enum 值转换成整型值,反之亦然。 例如:

    C#
    int i = (int)Color.Blue;    // int i = 2;
    Color c = (Color)2;         // Color c = Color.Blue;  
    

    任何 enum 类型的默认值都是已转换成 enum 类型的整型值 0。 如果变量被自动初始化为默认值,这就是为 enum 类型的变量指定的值。 为了让 enum 类型的默认值可供方便使用,文本类型 0 隐式转换成任意 enum 类型。 因此,可以运行以下命令。

    C#
    Color c = 0;
  • 相关阅读:
    (笔试题)镇长选举
    (笔试题)最小的非“重复的数”
    ( 笔试题)只出现一次的数
    (算法)二叉树中两个结点的最近公共父结点
    (笔试题)区间最大重叠
    (剑指Offer)面试题61:按之字形顺序打印二叉树
    (算法)Partition方法求数组第k大的数
    (剑指Offer)面试题60:把二叉树打印成多行
    整理一些不错的、网上好评的电影、电视、视频等资源地址
    个人网站/博客,建站好的域名和网站供应商网站整理
  • 原文地址:https://www.cnblogs.com/lzfsuifeng/p/9109564.html
Copyright © 2020-2023  润新知