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。不支持值
,并且根本不使用用户输入。此外,如果发布的答案解决了您最初的问题,但现在您遇到了新问题,这应该是一个新问题。否则,贴出的评论和回答毫无意义。非常感谢!我们昨天花了大约两个小时试图解决这个问题,但运气不佳。非常感谢你的帮助!现在它运行:)