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();

        }
    }
}
相关推荐
La Pulga12 小时前
【FreeRTOS源码学习笔记】任务延时列表
笔记·mcu·学习·嵌入式·freertos·实时操作系统
楚山之石13 小时前
【JCO】mpMRI 先行替代 TURBT 初始分期:BladderPath 随机试验让 MIBC 患者提前 45 天得到正确治疗
人工智能·学习·mri·医学影像
Peter-OK16 小时前
PostgreSQL学习笔记(入门-进阶-精通说明)
笔记·学习·postgresql
承渊政道17 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
橙橙笔记18 小时前
具身智能的学习 - 完成一个机械臂 第1节
python·学习·机械臂·具身智能
成都蜀味缘餐饮技术培训学校18 小时前
手撕烤兔技术培训实战指南,秘制腌料配方比例与调制手法
大数据·经验分享·笔记·其他·微信公众平台
波力海苔夹心脆67519 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
希和202720 小时前
免费AI视频生成工具汇总(国内优先,适合做漫剧、短视频,Obsidian笔记版)
人工智能·笔记·音视频
蒸蒸yyyyzwd21 小时前
秋招学习笔记 day109
笔记·八股
AI导出鸭PC端21 小时前
Perplexity批量导出没有PDF模式?AI导出鸭插件补上最后一块拼图
人工智能·pdf·c#·ai导出鸭