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

        }
    }
}
相关推荐
是隼人8 小时前
buuctf-pwn bjdctf_2020_babystack2题解 整数溢出(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
KhalilRuan9 小时前
UnityCsReference——笔记
java·开发语言·笔记
电子云与长程纠缠9 小时前
UE5 Lyra PocketWorld进行3D内容UI预览 - 上
开发语言·学习·3d·ue5·游戏引擎
shangwen1239 小时前
食品厂无尘车间装修施工工艺笔记:C型钢吊顶加固方案尚文净化
笔记
210Brian9 小时前
STM32学习笔记(六)EXTI外部中断(下)
笔记·stm32·学习
MartinYeung59 小时前
[论文学习]Latent Fusion Jailbreak: 融合有害与无害表征以诱导大语言模型产生不安全输出
学习·安全·语言模型
星恒随风9 小时前
C++ 哈希详解(二):开放定址、哈希桶与 C++ 哈希表底层实现
c++·笔记·学习·哈希算法·散列表
迪丽热爱9 小时前
每日英语-17
学习
2501_9269783310 小时前
AGI封锁的物理边界:发现模式决定封锁可行性
人工智能·经验分享·笔记·ai写作·agi
Mr_liu_66611 小时前
Claude非专业入门实战笔记(附录):关闭Telemetry-遥测,消除无用网络请求与日志噪音
linux·笔记·ubuntu·ai编程