C# 枚举(enum)

C# 是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。本文主要介绍C# 枚举(enum) 。

1、枚举(enum)

enum是一个特殊的类,代表一组常量(不可更改的变量,如,const变量)。

要创建enum,请使用enum关键字(而不是类或接口),并用逗号分隔常量。请注意,它们应使用大写字母:

例如:

访问enum中常量可以使用.的方式访问:

enum Level {
LOW,
MEDIUM,
HIGH
}

如访问枚举类型LevelLOW则使用Level.LOW

2、类中定义枚举

还可以在类中包含一个enum

例如,

using System;
namespace cjavapy
{
    public class EnumDemo
    {
        enum Level
        {
            LOW,
            MEDIUM,
            HIGH
        }
        public static void Main(string[] args)
        {
            Level myVar = Level.MEDIUM;
            Console.WriteLine(myVar);
        }
    }
}

3、switch语句中的enum

枚举常用于switch语句中,来判断相应的值:

例如,

using System;
namespace cjavapy
{
    enum Level
    {
        LOW,
        MEDIUM,
        HIGH
    }
    public class EnumDemo
    {
        public static void Main(string[] args)
        {
            Level myVar = Level.MEDIUM;
            switch (myVar)
            {
                case Level.LOW:
                    Console.WriteLine("Low level");
                    break;
                case Level.MEDIUM:
                    Console.WriteLine("Medium level");
                    break;
                case Level.HIGH:
                    Console.WriteLine("High level");
                    break;
            }
        }
    }
}

4、循环遍历枚举类型

枚举类型具有Enum.GetValues()方法,该方法返回所有枚举常量的数组。 当要遍历枚举的常量时,此方法很有用:

例如,

for(Level myVar :  Enum.GetValues(typeof(Level))){
Console.WriteLine(myVar);
}

5、枚举与类之间的区别

枚举可以像class一样具有属性和方法。唯一的区别是枚举常量是不可更改,不能用于创建对象,并且不能扩展其他类(但可以实现接口)。

推荐阅读
cjavapy编程之路首页