我有' StudentNum'在参数列表中的StudentNumber方法中声明为int,但程序一直告诉我它在当前上下文中不存在。有人知道为什么吗?对不起,我是C#的新手,在我们调用函数的过去的C ++类中,我记得jus做了类似的事情:StudentNumber(StudentNum)。当我从参数列表中删除StudentNum时,程序会显示"方法' StudentNumber'取0个参数。我希望程序提示用户输入一个数字,如果它少于20,那么他们会得到这样的消息。谢谢!这是我的代码:
namespace RegisterStudent
{
public class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hi. Please Enter The Student Number Then Press Enter");
Console.ReadLine();
StudentNumber();
}
public static void StudentNumber(int StudentNum)
{
if (StudentNum > 20)
{
Console.WriteLine("Sorry, the class is full.");
Console.ReadLine();
}
else
{
Console.WriteLine("You are now enrolled in the course");
Console.ReadLine();
}
}
public static void StudentHours()
{
}
public static void Conflict()
{
}
}
}
答案 0 :(得分:5)
更改行
Console.ReadLine();
StudentNumber();
作为
StudentNumber(int.Parse(Console.ReadLine()));
答案 1 :(得分:1)
你的问题是你没有将任何参数传递给你的函数StudentNumber(int StudentNum)
错误告诉您没有任何没有参数的重载函数,因此您应该将int
参数传递给StudentNumber()
才能正常工作
Console.ReadLine();
读取字符串行,因此应通过以下方法之一将其转换为int
:
Int.Parse()
Convert.ToInt()
Int.TryParse()
这里是正确的代码版本:
static void Main(string[] args)
{
int stdnum;
Console.WriteLine("Hi. Please Enter The Student Number Then Press Enter");
stdnum=Convert.ToInt32(Console.ReadLine());
StudentNumber(stdnum);
}
或者您可以使用:
stdnum=Int32.Parse(Console.ReadLine());
我认为现在澄清你的问题。