017集—— 枚举类型——C#学习笔记

枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。

C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承

声明enum变量

声明枚举的一般语法:

我们用不同年龄段来创建一个枚举类型:

cs 复制代码
// 定义人的年龄阶段枚举  
using System;

public enum AgeStage
{
    // 注意:这里我们仅为示例而定义了大致的年龄范围  
    // 在实际应用中,可能需要更复杂的逻辑来确定年龄阶段  
    /*枚举(Enum)的成员默认情况下是隐式地赋予整数值的,从0开始递增。
     * 因此,当你为枚举成员显式地指定了一个整数值,
     * 并且随后删除了这个值(比如从Child = 0改为Child),
     * 编译器会自动将这个成员(即Child)的值设为紧随前一个成员的值之后的整数值。
     * 但是,如果你是在枚举的第一个成员上这么做(比如Child是第一个成员),
     * 并且删除了显式赋的值,那么它的值将默认为0。*/
    Child = 0,  // 假设0-12岁为儿童  
    Teenager = 1, // 假设13-19岁为少年  
    青年 = 2, // 假设20-39岁为青年  
    MiddleAged = 3, // 假设40-59岁为中年  
    Senior = 4 // 假设60岁及以上为老年  
}

// 示例:如何使用AgeStage枚举  
class Program
{
    static void Main(string[] args)
    {
        // 假设我们知道某个人的年龄  
        int age = 36;

        // 根据年龄判断并输出对应的年龄阶段  
        // 注意:这里为了简化,我们使用了简单的条件判断,而非枚举直接映射  
        // 因为枚举通常不直接存储额外的数据(如年龄范围)  
        AgeStage ageStage;
        if (age <= 12)
        {
            ageStage = AgeStage.Child;
        }
        else if (age <= 19)
        {
            ageStage = AgeStage.Teenager;
        }
        else if (age <= 39)
        {
            ageStage = AgeStage.青年;
        }
        else if (age <= 59)
        {
            ageStage = AgeStage.MiddleAged;
        }
        else
        {
            ageStage = AgeStage.Senior;
        }

        // 输出年龄阶段  
        Console.WriteLine($"年龄: {age}, 年龄段: {ageStage}");
        Console.ReadKey();
    }
}
复制代码
using System;

namespace day01
{

    class Program
    {
        enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
        static void Main(string[] args)
        {
            int x = (int)Day.Sun;
            int y = (int)Day.Fri;
            Console.WriteLine("Sun={0}\nFri={1}", x, y);
            Console.ReadKey();

        }
    }
}
相关推荐
Chen—LSN18 分钟前
C语言——文件操作(2)
c语言·开发语言·c++·经验分享·笔记·算法·c#
程序员yu39 分钟前
会编网络:别被入门教程骗了,Python实用能力不在语法本身
开发语言·python·学习·算法
Lintongzg43 分钟前
千卡训练的隐形账单:通信不是瓶颈
笔记·学习·性能优化·llm
dadaobusi44 分钟前
学习: SIOV
学习
LuminousCPP1 小时前
从零开始学 C++(三):类和对象入门|从 struct 到 class,理解封装、对象与 this 指针
c++·笔记·学习·类和对象
传奇开心果编程2 小时前
【Flutter入门练中学】第11课:状态管理进阶与声明式路由
android·学习·flutter·ui·ios
承渊政道2 小时前
Linux系统学习【进程信号详细解析——认识、产生、保存以及捕捉信号】
linux·学习·ubuntu·ssh·vs code·进程信号
2601_957883843 小时前
2026年9月:戴尔笔记本售后情况大揭秘
笔记
个 人 练 习 生3 小时前
C++中的内存管理
开发语言·c++·经验分享·学习
江湖人称菠萝包3 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter11-数据库
笔记·qt·qt5