enum Sex
{
男,
女,
}
在使用时
Console.WriteLine("请输入性别(按编号输入):");
foreach (var v in Enum.GetNames(typeof(Sex)))
{
Console.Write((int)Enum.Parse(typeof(Sex), v) + "、" + v + " ");
}
在读入之前先遍历Sex中的GetNames也就是得到它的名字,然后再遍历它的值,用markenum 做个标记。
string sex = Console.ReadLine();
bool markenum = false;
foreach (int i in Enum.GetValues(typeof(Sex)))
{
if (i == int.Parse(sex))//如果输入的值和枚举里面的值相等则标记markenum =
{
markenum = true;
}
}
if (markenum)
{
stu.SEX = (Sex)int.Parse(sex);//stu为定义的student结构中new出的对象
}
else
{
throw new StuException("你输入的编号与性别提供的编号不匹配", int.Parse
}
这样可以限制枚举里面的数据,防止值的重复。用户也可以输入值或者名称。