了解错误“当前上下文中不存在名称”

时间:2016-02-05 23:19:57

标签: c# visual-studio-2013

我正在使用C#。我有一个错误:“当前上下文中不存在名称'职员'”,我不明白。我尝试了很多解决方案,但它没有用。

        Console.WriteLine("Enter Name:");
        string name = Console.ReadLine();
        Console.WriteLine("Working Days:");
        int days = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Working Hours:");
        int hour = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("Job Designation:");
        string job = Console.ReadLine();



            if (job == manager)
            {
                Console.WriteLine("Salary is:" + (days * hour * 200));
            }
            else if (job == clerk )
            {
                Console.WriteLine("Salary is:" + (days * hour * 50));
            }

            else
            {
                Console.WriteLine("No Record");
            }
    }
}

}

3 个答案:

答案 0 :(得分:1)

您的代码在开头说job是一个字符串。

然后将其与clerk进行比较。变量名clerk是否有与之关联的字符串值?它看起来并不像。看起来您确实想要检查job是否为字符串"clerk",因此您需要将clerk替换为"clerk"。我有点惊讶你没有先在manager上收到错误。

错误消息的含义是编译器认为您指的是变量名为clerk的内容。但是你还没有定义任何这样的变量。所以"名称X在当前上下文中不存在"意味着你指的是尚未定义的东西。在许多情况下,原因就像当前的原因 - 你的意思是它是一个字符串,但你写它的方式表明它是一个变量名。在其他情况下,这将是一个错字 - 您定义了一个变量,然后您尝试使用略有不同的拼写。

答案 1 :(得分:1)

您忘记了IF语句中的双引号(见下文)

    Console.WriteLine("Enter Name:");
    string name = Console.ReadLine();
    Console.WriteLine("Working Days:");
    int days = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("Working Hours:");
    int hour = Convert.ToInt32(Console.ReadLine());

    Console.WriteLine("Job Designation:");
    string job = Console.ReadLine();



        if (job == "manager")
        {
            Console.WriteLine("Salary is:" + (days * hour * 200));
        }
        else if (job == "clerk" )
        {
            Console.WriteLine("Salary is:" + (days * hour * 50));
        }

        else
        {
            Console.WriteLine("No Record");
        }

答案 2 :(得分:0)

您声明的

string jobstring,并且您正在访问clerk,因为它是一种类型。

"something"stringsomethingtype,按类型我的意思是结构,类,接口等。