我有一个简单的控制台应用程序,每天通过任务计划程序执行两次。当它像这样运行时,该Main()
方法的默认输入将是当前月份和当前年份。
但是,有时这个任务需要在计划之外手动执行;在这种情况下,它应该分别提示用户输入年份和月份。
我知道如何在执行应用程序时发送参数,如下所示:
myapplication.exe 2013 1
我可以相应地检查参数和代码的数量。但我想提示用户输入月份和年份。我们应该怎么做?感谢您的帮助。
请为这篇文章建议一个更好的标题。
我有一个简单的控制台应用程序,每天通过任务计划程序执行两次。当它像这样运行时,该Main()
方法的默认输入将是当前月份和当前年份。
但是,有时这个任务需要在计划之外手动执行;在这种情况下,它应该分别提示用户输入年份和月份。
我知道如何在执行应用程序时发送参数,如下所示:
myapplication.exe 2013 1
我可以相应地检查参数和代码的数量。但我想提示用户输入月份和年份。我们应该怎么做?感谢您的帮助。
请为这篇文章建议一个更好的标题。
您可以引入一个特殊的命令行参数,该参数仅在应用程序通过调度程序执行时使用。如果存在此参数,您将使用当前日期,否则,您将提示用户为您输入日期。
例如
private static void Main(string[] args)
{
var yourFirstMagicNumber = -1;
var yourSecondMagicNumber = -1;
// Let's use the third argument as indicator that you need user input
if (args.Length > 2 && "true".Equals(args[2]))
{
Console.WriteLine("enter magic nr 1: ");
var firstArgument = Console.ReadLine();
yourFirstMagicNumber = Int32.Parse(firstArgument);
Console.WriteLine("enter magic nr 2: ");
var secondArgument = Console.ReadLine();
yourSecondMagicNumber = Int32.Parse(secondArgument);
}
else
{
yourFirstMagicNumber = Int32.Parse(args[0]);
yourSecondMagicNumber = Int32.Parse(args[1]);
}
}