C#百识百例之十三-enum

目录

1.实例目标

2.编程思路

3.编程步骤


1.实例目标

   了解枚举类型适合的环境,枚举类型的声明,以及枚举类型的特征。

2.编程思路

   2.1 enum关键字用于声明枚举类型,即一种由一组称为枚举数列表的命名常数组成的独特类型;

   2.2 每种枚举类型均有一种基础类型,此基础类型可以是除char类型外的任何整型;

   2.3 声明enum变量格式: 属性 修饰符 enum 变量名 : 基础类型{  枚举列表 }         其中修饰符/属性/基础类型都是可选的,如允许修饰符有public/private/protected/internal/new;

   2.4 其基础类型是指分配给每个枚举数的类型,可以是除char类型外的整型之一,默认为int;

   2.5 枚举列表是由逗号分隔的枚举数标识符,也可以包括值分配,默认情况下,第一个枚举数的值为0,后面每个枚举数的值依次递增1;

   2.6 枚举数可以具有重写默认值的初始值设定项;

   2.7 基础类型指为每个枚举数分配的存储大小,但是从enum类型到整型的转换需要用显式类型转换来完成。

3.编程步骤

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PRO14
{
    class EnumAPP
    {
        //声明一个枚举类型Weekday,基类为int,访问范围为public
        public enum Weekday
        {
            Sun,Mon,Tue,Wed,Thu,Fri,Sat
        }
        public static void Main(string[] args)
        {
            //用枚举类型Weekday声明变量并赋初值
            Weekday wd1 = Weekday.Mon;
            Console.WriteLine("每周的工作日从{0}开始", wd1);
            Weekday wd2 = Weekday.Fri;
            Console.WriteLine("到{0}结束", wd2);

            //枚举类型变量用于计算
            Console.WriteLine("每周有{0}个工作日", wd2 - wd1 +1);
            Console.WriteLine();

            //枚举类型变量作为函数的参数
            Console.WriteLine("Mon之后是{0}", Nextday(Weekday.Mon));
            Console.WriteLine();

            //使用枚举类型的GetNames()方法
            foreach(string sl in Weekday.GetNames(typeof(Weekday)))
            {
                Console.Write(sl + "");
            }
            Console.WriteLine("\n");

            //从命令行读取枚举类型变量的值
            Console.Write("今天是星期几?");

            Weekday wd3 = (Weekday)Weekday.Parse(typeof(Weekday), Console.ReadLine());
            Console.WriteLine("明天是{0}", Nextday(wd3));
            Console.WriteLine();


            //比较枚举类型的值
            Console.Write("体育课在星期几?");
            wd1 = (Weekday)Weekday.Parse(typeof(Weekday), Console.ReadLine());
            Console.Write("物理试验在星期几?");
            wd2 = (Weekday)Weekday.Parse(typeof(Weekday), Console.ReadLine());

            if(wd1.CompareTo(wd2) == 0)
            {
                Console.WriteLine("糟糕,在同一天。");
            }
            else
            {
                Console.WriteLine("没事,不在同一天");
            }
            Console.ReadKey();
        }
        

        //功能:得到某日的下一日(星期几)
        //参数: wd:枚举类型Weekday
        //返回值:枚举类型Weekday
        public static Weekday Nextday(Weekday wd)
        {
            Weekday wdnext;
            if(wd == Weekday.Sat)
            {
                wdnext = Weekday.Sun;
            }
            else
            {
                wdnext = wd + 1;
            }
            return wdnext;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值