方法中的数组和返回主要方法

时间:2017-11-09 04:10:20

标签: c#

我想知道如何从一个方法回到main。例如,我想检查数字是否超过了某个标准;我会用不同的方法执行测试,如果它返回true,我想继续在main中使用该数字。如何在连续循环中再次从一个方法转到main?我尝试调用main方法,但程序显示错误消息。

我的项目设置方式是显示一个菜单供用户输入邮政编码。该菜单有许多选项可以添加,退出或查看其代码。一旦他们添加了他们的邮政编码并且它是有效的,我怎样才能将它循环回主页,再次出现菜单,执行相同的功能?

主要的小部分:

 if (decision.Equals("A"))
   {

     Console.Write("\n");
      Console.WriteLine("Please enter your postal code: ");

      for (i = 0; i < 1; i++)
  {
      postalcodez = Console.ReadLine().ToUpper();

if (isValid(postalcodez, i, number, j, num))
{

 postalcode[i] = postalcodez;
 Console.WriteLine("It worked!");
 Console.ReadLine();


}

 }

}

现在它通过检查条件的方法。如果它返回true,我怎么能让它回到main?

 public static bool isValid(string postalcodez, int i, int number, int j, int num)
    {
        if (postalcodez.Length > 7 || postalcodez.Length < 7)
        {
            return false;

        }

        if (postalcodez[0].ToString().Equals("W") || postalcodez[0].ToString().Equals("Z"))
        {

            return false;

        }

        if (postalcodez.Length.Equals(7))
        {

            if (postalcodez[3].ToString().Equals(" "))
            {
                return true;

            }
            else
            {
                return false;
            }

另一个问题是我如何制作一个数组,以便我可以为特定的字符编号设置条件。而不是这样做(我硬编码特定数字的地方)我希望第1,第4和第6个字符必须是某个值:

      if (postalcodez[1].ToString().Equals(0) || postalcodez[1].ToString().Equals(1) || postalcodez[1].ToString().Equals(2) || postalcodez[1].ToString().Equals(3) || postalcodez[1].ToString().Equals(4))
            {

                return true;

            }

由于这是针对学校的,我可以使用任何特殊功能来解决问题。它必须非常基础。

1 个答案:

答案 0 :(得分:0)

看起来你对Main()实际上有什么误解。 Main()实际上是整个应用程序。 Main是当前调用堆栈完成解析时所有内容将返回的根,如果在该点之后没有其他语句,Main将完成,应用程序将关闭。当您从Main调用方法时,当它们返回一个值(如果不是void)时,您将返回Main。

根据您所说的是您的需要,以下是将要发生的事情的一个非常基本的示例 - 代码的流程应该相当清楚:

private static void Main(string[] args)
{
    int number = 5;
    bool isValid = VerifyNumber(number);
    if (!isValid)
        Console.WriteLine("Not valid.");
    else
        Console.WriteLine("Valid.");

    Console.ReadKey();
}

private static bool VerifyNumber(int number)
{
    return number > 2;
}

需要注意的事项:

由于从Main调用的方法有一个参数,该参数是从Main内部提供的。这意味着当方法完成时,Main仍然可以访问该值。

存储方法的输出,以便可以在Main内部完成工作。