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

        }
    }
}
相关推荐
for_ever_love__5 分钟前
Objective- C学习: 手动内存管理
c语言·学习·ios·objective-c
gechunlian887 分钟前
Spring Security 官网文档学习
java·学习·spring
2401_8534482327 分钟前
Maix例程代码学习
学习
FPGA小迷弟37 分钟前
FPGA工程师面试题汇总(二)
学习·fpga开发·verilog·fpga
伏 念1 小时前
大模型技术之LLM
人工智能·笔记·python·aigc
arvin_xiaoting1 小时前
OpenClaw学习总结_I_核心架构_9:Multi-Agent详解
网络·学习·架构·系统架构·ai agent·multi-agent·openclaw
中屹指纹浏览器1 小时前
2026移动端环境模拟:指纹浏览器在跨端账号管理中的技术演进
经验分享·笔记
倾心琴心1 小时前
【agent辅助pcb routing coding学习】实践7 length matching 算法学习
学习·算法·agent·pcb·routing
weiabc2 小时前
今日C/C++学习笔记20260223
c语言·c++·学习
我的xiaodoujiao2 小时前
3、API 接口自动化测试详细图文教程学习系列3--相关Python基础知识2
python·学习·测试工具·pytest