Seb*_* S. 15 c# nuget-package command-line-parser
我尝试将一个布尔参数传递给控制台应用程序,并使用命令行解析器库处理该值.
[Option('c', "closeWindow", Required = true, HelpText = "Close the window.")]
public bool CloseWindow { get; set; }
Run Code Online (Sandbox Code Playgroud)
我试图将参数传递为
-c false
-c False
-c "false"
-...
Run Code Online (Sandbox Code Playgroud)
没有差异,每次尝试我得到"true"的价值.
任何人都可以告诉我如何传递参数来获取布尔false值?
为了避免可能的问题,有一个正确传递的字符串选项:
[Option('s', "system", Required = true, HelpText = "Any help text")]
public string System { get; set; }
Run Code Online (Sandbox Code Playgroud)
kle*_*lev 27
bool? 以你想要的方式行事
和 :
[Option('c', "closeWindow", Required = true, HelpText = "Close the window.")]
public bool? CloseWindow { get; set; }
Run Code Online (Sandbox Code Playgroud)
结果将是:
-c false // -> false
-c true // -> true
-c // -> error
// -> error if Required = true, null otherwise
Run Code Online (Sandbox Code Playgroud)
arn*_*e.z 23
您不需要添加True或False.使用-c将评估为True.不使用它将评估为False.在文档的某处有一个示例,-v用于详细输出.但我现在找不到它.我猜Required=true布尔选项不是必需的.