我是C#的新手,我刚来自PHP。
具体来说,让我“复制/粘贴”那些我难以理解的代码。
我有一个功能,它从“当前年份”中减去“出生年份”并返回更新年龄。现在,我需要检查用户的年龄是否小于30岁。打印出“你太年轻,无法查看此页面”的消息,然后询问他/她是否想继续回答其余问题。然后我们根据答案做出决定。如果答案为“是”,我们,如下所示,继续。现在我想知道,但如果用户说“不”怎么办?如何中断代码?
例如在PHP中我曾经输入过这个 - “exit()”。
提前致谢。
if (ma.HowOldImI(date1, date2) < 30)
{
Console.WriteLine("you are too young to view this page");
Console.WriteLine("would you like to continue the session?");
string confirm = Console.ReadLine();
if (confirm == "yes")
{
Console.WriteLine("Please type your name");
string nm = Console.ReadLine();
Console.WriteLine("Please type your born year");
int ag = Convert.ToInt16(Console.ReadLine());
gr.YouWereBorn(nm, ag);
}
}
else
{
Console.WriteLine("You are " + ma.HowOldImI(date1, date2) + " years old\n");
}
答案 0 :(得分:3)
如果要退出该功能,只需执行“return;”
e.g。
if (ma.HowOldImI(date1, date2) < 30)
{
Console.WriteLine("you are too young to view this page");
Console.WriteLine("would you like to continue the session?");
string confirm = Console.ReadLine();
if (confirm == "yes")
{
Console.WriteLine("Please type your name");
string nm = Console.ReadLine();
Console.WriteLine("Please type your born year");
int ag = Convert.ToInt16(Console.ReadLine());
gr.YouWereBorn(nm, ag);
}
else
{
return;
}
}
else
{
Console.WriteLine("You are " + ma.HowOldImI(date1, date2) + " years old\n");
}
如果您需要停止当前的消息泵,只需使用Application.Exit();
如果您想使用适当的代码退出应用程序,请使用Environment.Exit(0);
This article提供一个体面的概述两个。
答案 1 :(得分:2)
您可以采取的选项很少,其他用户已经说过,但我的目的是尝试解释哪种选择最适合您的情况。
首先,我假设您正在使用控制台应用程序(纯粹基于您使用Console.ReadLine()
的事实。
考虑到这一点,我们知道你有一个Main(string args[])
方法在某处。所以第一个问题是,您的代码段是否直接用于此Main()
函数?
如果是这样,那么您可能已经知道,一旦程序到达函数结束,程序将退出。但是,知道您可以使用return语句过早地结束任何函数的流程是很有用的。
return语句终止执行它的方法 出现并将控制权返回给调用方法。它也可以回归 可选表达式的值。如果方法属于该类型 void,return语句可以省略。
在这种情况下,void
被使用,因此您可以简单地使用:
return;
而不是说,例如:
return "a string";
如果代码逻辑在另一个函数(由main()
函数调用的函数)中,那么你不能简单地从函数返回来结束程序(尽管这可能是结果),因为任何进一步的主函数中的代码仍然需要执行。
已建议的其他方法(例如Application.Exit()
和Environment.Exit()
)将为您提供结束应用程序所需的效果,但我建议不要直接使用这些方法,因为它不会给用户带来任何好处反馈。但是,您可以创建一个小的包装函数来结束应用程序,例如:
public void EndApplication()
{
Console.WriteLine("You have chosen to end the application, hit enter to say Goodbye...");
Console.ReadLine();
Environment.Exit(0);
}
然后可以从您选择的任何地方调用(如果您需要,可以here are some alternate error codes)。
但是,我更愿意让应用程序自然地通过Main()
函数流动,并在结束时告别。选择在子功能中使用return;
语句,例如:
public void Main(string[] args)
{
DoMyWork();
Console.WriteLine("You have chosen to end the application, hit enter to say Goodbye...");
Console.ReadLine();
}
private void DoMyWork()
{
//...
string confirm = Console.ReadLine();
if(confirm.ToLower() == "no")
{
return;//no need to continue with this function
}
//carry on with you logic
Console.WriteLine("Please type your name");
//...
}
答案 2 :(得分:0)
如果用户拒绝,请仔细查看代码。请跳过请输入名称等的逻辑,然后退出该功能。如果没有,那么按照每个人的说法做:
return;
答案 3 :(得分:0)
您可以尝试使用此代码 - 添加返回
if (confirm == "yes")
{
Console.WriteLine("Please type your name");
string nm = Console.ReadLine();
Console.WriteLine("Please type your born year");
int ag = Convert.ToInt16(Console.ReadLine());
gr.YouWereBorn(nm, ag);
}
else
{
return;
}