I try to pass a boolean parameter to a console application and process the value with the Command Line Parser Library.
[Option('c', "closeWindow", Required = true, HelpText = "Close the window.")] public bool CloseWindow { get; set; }
I tried to pass the parameter as
-c false -c False -c "false" -...
There are no differences, on each try I get "true"
as value.
Can anyone tell me how I have to pass the parameter to get the boolean false
value?
To avoid possible asks, there is a string option which is passed correctly:
[Option('s', "system", Required = true, HelpText = "Any help text")] public string System { get; set; }
You don't need to add True
or False
. Using -c
will evaluate to True
. Not using it will evaluate to False
. Somewhere in the documentation there is an example with -v
for verbose output. But I can't find it right now. I guess Required=true
is not necessary for Boolean options.
bool?
behaves the way you want
with :
[Option('c', "closeWindow", Required = true, HelpText = "Close the window.")] public bool? CloseWindow { get; set; }
the result will be :
-c false // -> false -c true // -> true -c // -> error // -> error if Required = true, null otherwise
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With