一.枚举
1.基本概念--被命名的整形常量的集合--表示状态、类型
申明枚举--创建一个自定义的枚举类型
申明枚举变量--使用自定义的枚举类型--创建一个枚举变量
申明枚举语法--enum E_自定义枚举
enum E_自定义枚举名
{
自定义枚举项的名字 = 5; #那就变成5了
自定义枚举项的名字1; #后面就是6啦
自定义枚举项的名字2;
}
2.在那里申明枚举--在namespace语句块种申明 /class/struck(不要再函数里申明)
using system
namespace Meiju{
enum E_Monster{
normal, //0
boss, //1
}
}
3.枚举的使用--和switch天生一对
E_Monster monstertype = E_Monster.boss;
switch (monstertype)
{
case E_Monster.boss:
Console.WriteLine("niubi");
break;
case E_Monster.noemal:
Console.WriteLine("laji");
break;
default:
break;
}
转类型
int i = (int)monstertype;
直接查看类型
string str = monstertype.ToString();
#boss
4.总结--游戏中玩家有很多状态需要用一个变量去标识--表示当前的状态(比如int之类的)
1)行走 2)待机 3)跑步 等等
枚举可以帮我们清晰的分清楚状态的含义--把数字比喻化
5. 一个小练习--输入选择的QQ模式
using System;
namespace QQ_space
{
enum E_QQ
{
zhuangtai,
zhuangtai1,
zhuangyai2,
}
class QQ
{
static void Main (string[] args)
{
Console.WriteLine("请选择一个在线模式");
string input = Console.ReadLine();
int number;
number = int.Parse(input);
//E_QQ qqtype = E_QQ.zhuangtai1;
switch (number)
{
case 1:
Console.WriteLine("choose first");
break;
case 2:
Console.WriteLine("choose second");
break;
case 3:
Console.WriteLine("choose third");
break;
default:
break;
}
}
}
}
6.购买咖啡小案例
using System;
namespace XingBaKe
{
enum E_classify
{
little_cup,
middle_cup,
niubi_cup,
}
class Coffe
{
static void Main(string[] args)
{
int result;
Console.WriteLine("请问您想买哪种咖啡?");
string input = Console.ReadLine();
if (input == "little_cup")
{
result = 0;
}else if(input == "middle_cup")
{
result = 1;
}
else
{
result = 2;
}
//int number;
//number = int.Parse(input);
switch (result)
{
case 0:
Console.WriteLine("您购买啦little_cup,共花费35元");
break;
case 1:
Console.WriteLine("您购买啦middle_cup,共花费40元");
break;
case 2:
Console.WriteLine("您购买啦niubi_cup,共花费43元");
break;
default:
break;
}
}
}
}
最后:小游戏
sing System;
namespace First_game
{
enum E_gender
{
male,
female,
}
enum E_working
{
fight,
hunter,
magicer,
}
class Play
{
static void Main(string[] args)
{
int GongJi = 0;
int FangShou = 0;
Console.WriteLine("请选择你的性别,男0,女1");
int gender = int.Parse(Console.ReadLine());
E_gender gendertype = (E_gender)gender; //强制转换
switch (gendertype)
{
case (E_gender)0:
GongJi += 50;
FangShou += 100;
break;
case (E_gender)1:
GongJi += 120;
FangShou += 30;
break;
default:
break;
}
Console.WriteLine("请选择你的职业,战士0,猎人1,法师2");
int worktype = int.Parse(Console.ReadLine());
E_working workType = (E_working)worktype;
switch (workType)
{
case (E_working)0:
GongJi += 20;
FangShou += 100;
Console.WriteLine($"您的攻击力是{GongJi},防御力是{FangShou},技能是冲锋");
break;
case (E_working)1:
GongJi += 120;
FangShou += 30;
Console.WriteLine($"您的攻击力是{GongJi},防御力是{FangShou},技能是假死");
break;
case (E_working)2:
GongJi += 200;
FangShou += 10;
Console.WriteLine($"您的攻击力是{GongJi},防御力是{FangShou},技能是奥术冲锋");
break;
default:
break;
}
}
}
}