C# 如果我需要使用用户输入的数字,如何在交换机中使用枚举?
我只需要使用带有输入数字的枚举,但我不知道如何转换。我是否必须创建一个额外的int和convert变量C# 如果我需要使用用户输入的数字,如何在交换机中使用枚举?,c#,enums,C#,Enums,我只需要使用带有输入数字的枚举,但我不知道如何转换。我是否必须创建一个额外的int和convert变量 public enum Actions { delete, add, edit }; Actions ac = Actions.Parse(Concole.Readline()); switch (ac) {
public enum Actions
{
delete,
add,
edit
};
Actions ac = Actions.Parse(Concole.Readline());
switch (ac)
{
case Actions.delete:
int k = int.Parse(Console.ReadLine());
Delete(flights[k]);
Console.WriteLine("");
break;
case 2:
Add();
Console.WriteLine("");
break;
case 3:
Edit();
Console.WriteLine("");
break;
default:
Console.WriteLine("Incorrect number!");
break;
}
从这个答案中:
public enum Actions
{
delete,
add,
edit
};
Actions ac = Actions.Parse(Concole.Readline());
switch (ac)
{
case Actions.delete:
int k = int.Parse(Console.ReadLine());
Delete(flights[k]);
Console.WriteLine("");
break;
case 2:
Add();
Console.WriteLine("");
break;
case 3:
Edit();
Console.WriteLine("");
break;
default:
Console.WriteLine("Incorrect number!");
break;
}
您可以接收字符串并使用Enum.Parse将其转换为Enum
public enum Actions
{
delete,
add,
edit
};
Actions ac = Actions.Parse(Concole.Readline());
switch (ac)
{
case Actions.delete:
int k = int.Parse(Console.ReadLine());
Delete(flights[k]);
Console.WriteLine("");
break;
case 2:
Add();
Console.WriteLine("");
break;
case 3:
Edit();
Console.WriteLine("");
break;
default:
Console.WriteLine("Incorrect number!");
break;
}
Actions ac = (Actions)Enum.Parse(typeof(Actions), Console.ReadLine());
// THen use switch on ac.
switch (ac)
{
case Actions.add:
// do something here
break;
case Actions.delete:
// do something here
break;
default:
throw new ApplicationException("Error");
}
默认情况下,枚举以0开头。如果要以1开头,请指定int值
public enum Actions
{
delete,
add,
edit
};
Actions ac = Actions.Parse(Concole.Readline());
switch (ac)
{
case Actions.delete:
int k = int.Parse(Console.ReadLine());
Delete(flights[k]);
Console.WriteLine("");
break;
case 2:
Add();
Console.WriteLine("");
break;
case 3:
Edit();
Console.WriteLine("");
break;
default:
Console.WriteLine("Incorrect number!");
break;
}
public enum Actions
{
delete = 1,
add = 2,
edit = 3
};
为什么要在案例中混合
int
和enum
值?因此,您的问题是希望用户输入一个数字,并使其对应于enum值?问题“如何将enum转换为int”已经得到回答。但是,不清楚为什么在交换机案例中混合使用enum和int。是的,我想在交换机案例中使用enum。用户必须输入数字1-3并选择他想要执行的操作。我认为从他的代码中可以明显看出,他想要将控制台输入强制转换为枚举。他只是不知道控制台给了他一个严厉的警告谢谢,这就是我需要的谢谢,这就是我需要的