C#语言基础——结构体和枚举类型全面解析

2019-12-30 13:20:30刘景俊

        three,

//如果等于之前的一个常量,那么就等于这个常量;最后一行的逗号可省略

        four=two

        }

        static void Main(string[] args)

        {

            Console.WriteLine(meiju.one);

            Console.ReadLine();

2、用法

枚举也可以指定数据类型,一般不指定。

在定义枚举类型时,可以选择基类型,但可以使用的基类型仅限于long、int、short和byte。例如:

如: enum meiju:int

【案例1】定义一个枚举类型,输出枚举类型某个常量,程序运行后显示的结果,如下图:

 C#语言,结构体,枚举类型

【技术要点】定义一个int枚举类型,内有4个枚举常量,再定义一个方法,该方法有一个参数用来接受一个枚举类型的值,然后返回的是一个int类型的值。

3、注意:数字不能单独放在枚举里面执行,系统会判错,主要是约束字符串;

如:6;

【案例2】定义一个枚举类型,内有6个枚举类型,下图图2是程序运行后的结果。

 C#语言,结构体,枚举类型

【技术要点】虽然枚举是一个常量的集合,但不能直接在枚举类型里面放置数字,系统不运行。

综合练习:20人投票,五个候选人,用switch  case


//20人投票  switch case  枚举

      //投票的时候输入1,2,3,4,5

      //利用12345来确定是哪一个候选人得票

      //计算得票数

      //得票最高的胜出

      Console.WriteLine("投票选班长!请输入1、2、3、4、5来分别代表张三、李四、王五、赵六、冯七");

      int[] shuzu = new int[20];

      for (int i = 1; i <= 20; i++)

      {

        Console.Write("请第" + i + "位同学来进行投票:");

        shuzu[i - 1] = int.Parse(Console.ReadLine());

      }

      Console.WriteLine("投票结束!按下回车开始统计票数!");

      Console.ReadLine();

      int zhangsan = 0, lisi = 0, wangwu = 0, zhaoliu = 0, fengqi = 0, zuofei = 0;

      for (int i = 0; i < 20; i++)

      {

        switch (shuzu[i])

        {

          case (int)Houxuanren.one:

            zhangsan++;

            break;

          case (int)Houxuanren.two:

            lisi++;

            break;

          case (int)Houxuanren.three:

            wangwu++;

            break;

          case (int)Houxuanren.four:

            zhaoliu++;

            break;

          case (int)Houxuanren.five:

            fengqi++;

            break;

          default:

            zuofei++;

            break;

        }

      }

      if (zhangsan > lisi && zhangsan > wangwu && zhangsan > zhaoliu && zhangsan > fengqi)

      {

        Console.WriteLine("张三胜出!票数为" + zhangsan);

      }

      else if (lisi > zhangsan && lisi > wangwu && lisi > zhaoliu && lisi > fengqi)

      {

        Console.WriteLine("李四胜出!票数为" + lisi);

      }

      else if (wangwu > lisi && wangwu > zhangsan && wangwu > zhaoliu && wangwu > fengqi)

      {

        Console.WriteLine("王五胜出!票数为" + wangwu);

      }

      else if (zhaoliu > lisi && zhaoliu > wangwu && zhaoliu > zhangsan && zhaoliu > fengqi)

      {

        Console.WriteLine("赵六胜出!票数为" + zhaoliu);

      }

      else if (fengqi > lisi && fengqi > wangwu && fengqi > zhaoliu && fengqi > zhangsan)

      {

        Console.WriteLine("冯七胜出!票数为" + fengqi);

      }

      Console.WriteLine("作废的票数为:" + zuofei);

      Console.ReadLine();