簡體   English   中英

C#:如何在程序中添加對“/?”的響應

[英]C#: How do I add a response to “/?” in my program

基本上,我知道在命令行中使用“/?”調用某些應用程序 吐出一個格式化的列表,列出如何使用params從命令行調用app。 此外,這些應用程序有時甚至會彈出一個框,提醒用戶該程序只能在傳入的某些參數下運行並提供此詳細格式化的參數(類似於命令提示符輸出)。

他們是如何做到的(/?對我來說比彈出框更重要)?

Main方法使用命令行args的string[]參數。
您還可以調用Environment.GetCommandLineArgs方法

然后,您可以檢查數組是否包含"/?"

嘗試查看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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM