2016-03-08 7 views
6

cerco di passare un parametro booleano per un'applicazione console ed elaborare il valore con il Command Line Parser Library.linea di comando Parser Biblioteca - booleano Parametro

[Option('c', "closeWindow", Required = true, HelpText = "Close the window.")] 
public bool CloseWindow { get; set; } 

ho cercato di passare il parametro come

-c false 
-c False 
-c "false" 
-... 

Non ci sono differenze, su ognuno cerca ottengo "true" come valore.

Qualcuno può dirmi come devo passare il parametro per ottenere il valore booleano false?

Per evitare possibili chiede, c'è un opzione di una stringa che viene passato in modo corretto:

[Option('s', "system", Required = true, HelpText = "Any help text")] 
public string System { get; set; } 
+0

Avrei pensato che i parametri booleani siano presenti o non presenti. Non richiedono e argomentano - non ha idea di come funzioni con 'Required = true' –

risposta

12

Non è necessario aggiungere True o False. L'utilizzo di -c verrà valutato su True. Non utilizzarlo valuterà a False. Da qualche parte nella documentazione c'è un esempio con -v per l'output dettagliato. Ma non riesco a trovarlo adesso. Immagino che Required=true non sia necessario per le opzioni booleane.

+0

Hai ragione, passare -c è valutato come vero se -c non viene passato ottengo false. Ma cosa succede se voglio usare l'opzione "Richiesto"? –

+0

Penso che la libreria non sia pensata per usarla in questo modo, ma potresti rendere la tua opzione una stringa e poi abbinare la stringa per valutare il tuo booleano. Probabilmente puoi farlo nella funzione getter della tua opzione. –

+0

Thx per il suggerimento, ho intenzione di provarlo in questo modo. –