我创建了一个窗口控制台应用程序。这将从窗口任务调度程序中获取一个命令行参数(true / false)。
我并不完全了解这个过程。
我正在使用此代码来阅读参数:
bool dateOffset = false;
if (args.Length > 0)
{
bool.TryParse(args[1], out dateOffset);
}
但是当我从任务调度程序运行程序时......它显示错误,例如..Application Name已停止工作异常..
我不确定我的代码或任务调度程序中是否存在问题。当我在没有参数的情况下调试它时,我的代码工作正常。
答案 0 :(得分:2)
问题在于:
bool.TryParse(args[1], out dateOffset);
C#中的数组(通常)从0开始,这意味着数组中的第一项是第0项,而不是第1项。
尝试将代码更改为:
bool.TryParse(args[0], out dateOffset);
答案 1 :(得分:1)
如果您有1个参数,则args[1]
应为:args[0]
答案 2 :(得分:1)
这里:if (args.Length > 0)
您正在检查args数组是否至少有一个元素。
但是,bool.TryParse(args[1], out dateOffset);
正在尝试访问数组中的第二个元素。
猜猜当if条件的长度为1但你试图访问第二个元素时会发生什么。
尝试使用args[0]
答案 3 :(得分:1)
你应该把第一个参数作为args [0]。