C#:如何在“/?”中添加响应在我的程序中

时间:2010-09-22 14:54:03

标签: c# params

基本上,我知道在命令行中使用“/?”调用某些应用程序吐出一个格式化的列表,列出如何使用params从命令行调用app。此外,这些应用程序有时甚至会弹出一个框,提醒用户该程序只能使用传入的某些参数运行并提供此详细格式化的参数(类似于命令提示输出)。

他们是如何做到的(/?对我来说比弹出框更重要)?

2 个答案:

答案 0 :(得分:6)

Main方法使用string[]参数和命令行args 您也可以拨打Environment.GetCommandLineArgs method

然后,您可以检查数组是否包含"/?"

答案 1 :(得分:2)

尝试查看NDesk.Options。它是一个可嵌入的C#库的单一源文件,提供参数解析。您可以快速解析您的论点:

public static void Main(string[] args)
{
   string data = null;
   bool help   = false;
   int verbose = 0;

   var p = new OptionSet () {
      { "file=",     "The {FILE} to work on",             v => data = v },
      { "v|verbose", "Prints out extra status messages",  v => { ++verbose } },
      { "h|?|help",  "Show this message and exit",        v => help = v != null },
   };
   List<string> extra = p.Parse(args);
}

它也可以轻松地以专业的格式写出帮助屏幕:

if (help)
{
   Console.WriteLine("Usage: {0} [OPTIONS]", EXECUTABLE_NAME);
   Console.WriteLine("This is a sample program.");
   Console.WriteLine();
   Console.WriteLine("Options:");
   p.WriteOptionDescriptions(Console.Out);
}

这样输出如下:

C:\>program.exe /?
Usage: program [OPTIONS]
This is a sample program.

Options:
  -file, --file=FILE         The FILE to work on
  -v, -verbose               Prints out extra status messages
  -h, -?, --help             Show this message and exit