我想知道如何从一个方法回到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;
}
由于这是针对学校的,我可以使用任何特殊功能来解决问题。它必须非常基础。
答案 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内部完成工作。