-2

我创建了一个窗口控制台应用程序。它将从窗口任务调度程序中获取一个命令行参数(真/假)。

我并不完全了解这个过程。

我正在使用此代码来读取参数:

bool dateOffset = false;
if (args.Length > 0)
{
    bool.TryParse(args[1], out dateOffset);
}

但是当我从任务调度程序运行程序时......它显示错误,如......应用程序名称已停止工作异常......

我不确定问题出在我的代码还是任务调度程序中。当我在没有参数的情况下调试它时,我的代码工作正常。

4

4 回答 4

2

问题出在以下几点:

bool.TryParse(args[1], out dateOffset);

C# 中的数组(通常)是从 0 开始的,这意味着数组中的第一项是项 0,而不是项 1。

尝试将您的代码更改为:

bool.TryParse(args[0], out dateOffset);
于 2013-03-26T13:35:36.830 回答
1

如果你有 1 个论点,args[1]应该是:args[0]

于 2013-03-26T13:35:12.037 回答
1

这里:if (args.Length > 0)您正在检查 args 数组是否至少有一个元素。

但是,bool.TryParse(args[1], out dateOffset);正在尝试访问数组中的第二个元素。

猜猜当您的 if 条件以 1 的长度通过但您尝试访问第二个元素时会发生什么。

尝试使用args[0]

于 2013-03-26T13:35:45.863 回答
1

您可能应该采用第一个参数,即 args[0]。

于 2013-03-26T13:46:23.950 回答