当发生异常时,我想重新启动所有处理或启动Main方法,在这个其他方法之后:
public void DisplayMessage(string message) {
Console.WriteLine(message, "Rebuild Log Files");
Console.WriteLine(" Press Enter to finish, or R to restar the program...");
string restart = Console.ReadLine();
if(restart.ToUpper() == "R") {
//Call the Main method or restart the app
}
Console.ReadKey();
}
注意:main方法包含一些用户写入的数据。
我该怎么做?
答案 0 :(得分:2)
好的,你有一个主要的
void main(...)
{
some code
}
您需要做的就是......
void main()
{
runStartUpCode();
}
void runStartUpCode()
{
some code
}
然后当您需要重新启动代码时,再次调用runStartUpCode()。
答案 1 :(得分:2)
if(restart.ToUpper() == "R") {
Close();
System.Diagnostics.Process.Start(Application.ExecutablePath);
}
答案 2 :(得分:0)
static void Main(string[] args) {
try {
// code here
} catch /* or finally */ {
DisplayMessage(/* pass in any state from Main() here */);
}
}
static void DisplayMessage(/* passed in state from Main() */) {
// original DisplayMessage() code
// if R was pressed
Main(/* put any args to pass to Main() in here */);
}
答案 3 :(得分:0)
当你读这篇文章时,我实际上刚刚完成了这个问题。我复制了ORIGINAL主方法,改变了原始的几个选项,并留下副本来调用新的main方法。这就是我的意思。
static void Main(string[] args)
{
Program CallingTheRealMain = new Program();
CallingTheRealMain.Main2();
}
public void Main2()
{
//Any code here
}
我最初需要这样做,因为我需要循环回主方法但不能因为它是静态的。这段代码对我来说很好,如果你选择实现它,希望它也适合你。希望我帮忙。快乐的编码!
答案 4 :(得分:0)
DialogResult result = MessageBox.Show("Do You Really Want To Logout/Exit?", "Confirmation!", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
this.Close();
System.Diagnostics.Process.Start(Application.ExecutablePath);
}
答案 5 :(得分:0)
我认为,如果您的应用要自动重启,则您的设计方法应该有所改变。...这是一个伪代码
main (){
errorObj = null;
internalFunct(errorObj);
if(errorObj != null) return;
secondINternalFunction();
}
正在运行该应用程序...
while(!errorObj){
main();
}
为什么我更喜欢这种方法,因为避免了Main或函数的调用...如果您使用的内存较小,那么在有限空间的堆栈上没有必要调用main ... ...您别无选择,只能进行迭代...
答案 6 :(得分:-1)
C#的新手,对于错误我深表歉意。 使用这个:
static void Restart() {
String[] n = new String[10];
n[0] = "hi";
Main(n);
}
Main出于我不知道的原因采用了字符串数组。对我来说似乎没有用,因为我尝试将其删除,但似乎没有任何变化。因此,也许这也可行:
尝试删除Main()的string[] args
部分,以便您可以键入Main();。没有
issues。