c#控制台应用程序无法运行
本文关键字:运行 应用程序 控制台 | 更新日期: 2023-09-27 18:18:09
我试图将我的应用程序更改为控制台应用程序。我想让它工作,如果一个参数传递方法1被执行,如果没有参数传递方法2被执行。
从我的代码,当我试着运行它什么都没有发生。
下面是我的主代码:[STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run();
RunTestCases runTestCases = new RunTestCases();
DataIntegration dataIntegration = new DataIntegration();
if (args != null)
{
runTestCases.RunTestCaseForSelectedField(args);
}
else
{
runTestCases.RunTestCaseForAllFields();
}
}
任何想法?
谢谢
Application.Run
启动一个消息循环,直到你的应用程序关闭(接收退出消息)。因此,在Application.Run()
被执行之后,什么也不会执行,直到退出消息。
问题是你是否真的需要那些引用Application的行。如果没有Window,那么消息循环很可能是多余的。如果要处理windows消息,则可能需要消息循环。但是,您将在一个单独的线程中运行此循环。
删除main方法的前三行。如果Output type
为Console Application
,请检查工程属性为方法设置入口点
我没有代表评论,但我看到的一个问题是,你的第一个条件将始终为真,因为没有命令行输入的args是一个零长度字符串数组,而不是一个空值。您希望检查args中的内容,而不是假设它为空。
如果您调试它,就会发现真正的问题,例如在args != null
行中放置一个断点,并查看 args
内部的内容。
然而,这可能是因为args
从来不是空的,所以让它:
if (args.Any())
(编辑:) JeffRSon还抓住了你的代码的另一个错误,所以他的答案也是正确的,但是,一旦你修复了原来的问题,你就会遇到我所描述的args
问题。所以我也把我的答案留在这里。
当启动没有参数的控制台应用程序时,args
将是一个空数组,不是一个空值)
与应用程序相关的代码在控制台应用程序中是不需要的,它只在windows应用程序(wpf)中使用,而且其他人告诉'args'是有效的
if (args.Length > 0)
{
runTestCases.RunTestCaseForSelectedField(args[0]);
}
else
{
//runTestCases.RunTestCaseForAllFields();
Console.WriteLine("No Parameter");
}
这就是我现在的代码,无论何时运行它,它都会运行else语句。为什么我的参数没有被接收?