我正在使用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");
}
}
}
}
答案 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 job
是string
,并且您正在访问clerk
,因为它是一种类型。
"something"
是string
,something
是type
,按类型我的意思是结构,类,接口等。