C# 为什么赢了';t enum是否触发默认选项?
编辑:C# 为什么赢了';t enum是否触发默认选项?,c#,enums,C#,Enums,编辑: 这个程序仍然没有按预期的那样工作。我试图实施建议的改变,这似乎确实是解决办法。但是,现在对程序的任何输入都会导致默认语句。我们做错了什么 新代码有以下更改: public class Processor { public void DisplayEmployers() { Console.WriteLine("Select an option"); Console.WriteLine("1. Lawyer&
这个程序仍然没有按预期的那样工作。我试图实施建议的改变,这似乎确实是解决办法。但是,现在对程序的任何输入都会导致默认语句。我们做错了什么 新代码有以下更改:
public class Processor
{
public void DisplayEmployers()
{
Console.WriteLine("Select an option");
Console.WriteLine("1. Lawyer");
Console.WriteLine("2. Admin");
Console.WriteLine("3. Receptionist");
Console.ReadLine();
}
public enum Staff { Lawyer, Admin, Receptionist, UnsupportedValue }
public void ChooseTypeOfEmployer()
{
Staff s = (Staff.UnsupportedValue);
switch (s)
{
case Staff.Lawyer:
ProvideLogin();
break;
case Staff.Admin:
ProvideLogin();
break;
case Staff.Receptionist:
ProvideLogin();
break;
default:
Console.WriteLine("Invalid input");
break;
}
}
public void ProvideLogin()
{
string username, password;
Console.WriteLine("Please provide username to access the system");
{
Console.WriteLine("Input a username: ");
username = Console.ReadLine();
Console.WriteLine("Input as password: ");
password = Console.ReadLine();
{
因为您已经处理了所有可用的值。 请尝试下一个案例:
public enum Staff { Lawyer, Admin, Receptionist, UnsupportedValue }
public void ChooseTypeOfEmployer()
{
Staff s = (Staff.UnsupportedValue);
switch (s)
{
case Staff.Lawyer:
ProvideLogin();
break;
case Staff.Admin:
ProvideLogin();
break;
case Staff.Receptionist:
ProvideLogin();
break;
default:
Console.WriteLine("Invalid input");
break;
}
}
++您可能需要简化代码
public void ChooseTypeOfEmployer()
{
Staff s = (Staff.UnsupportedValue);
switch (s)
{
case Staff.Lawyer:
case Staff.Admin:
case Staff.Receptionist:
ProvideLogin();
break;
default:
Console.WriteLine("Invalid input");
break;
}
}
你为什么认为有什么不对劲?什么时候/为什么您希望默认分支在这里执行?“现在程序中的任何输入都会导致默认语句”看起来您已经硬编码
s
为Staff。不支持值
,并且根本不使用用户输入。此外,如果发布的答案解决了您最初的问题,但现在您遇到了新问题,这应该是一个新问题。否则,贴出的评论和回答毫无意义。非常感谢!我们昨天花了大约两个小时试图解决这个问题,但运气不佳。非常感谢你的帮助!现在它运行:)