如何用C#中的参数调用Main中的方法?

时间:2015-08-01 23:47:12

标签: c#

我有' 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()
    {

    }
  }
}

2 个答案:

答案 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());

我认为现在澄清你的问题。