2016-03-08 17 views
6

Konsol uygulamasına bir boolean parametresi iletmeye ve değeri Command Line Parser Library ile işlemeye çalışıyorum. Her ben değeri olarak "true" olsun denemek üzerinde Komut Satırı Ayrıştırıcı Kitaplığı - Boole Parametresi

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

Ben

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

hiçbir fark yoktur olarak parametre geçirmeye çalıştı.

Boolean false değerini almak için parametreyi nasıl geçmem gerektiğini herkes söyleyebilir mi? Sen True veya False eklemek gerekmez

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

Boolean parametrelerinin mevcut olduğunu veya bulunmadığını düşünürdüm. Gereksinim duymazlar ve tartışmazlar - bunun ne işe yaradığını bilemezsiniz. Gerekli = true' –

cevap

12

: Mümkün önlemek için

doğru iletilen bir dize seçeneği yoktur, sorar. -c'u kullanarak True değerini değerlendirir. Kullanılmadığında False olarak değerlendirilecektir. Belgelerin bir yerinde, ayrıntılı çıktı için -v ile bir örnek vardır. Ama şu an onu bulamıyorum. Boolean seçenekleri için Required=true sanırım gerekli değil.

+0

Haklısınız, -c geçilmediğinde -c doğru olarak değerlendirilirse yanlış yapılır. Ama "Gerekli" seçeneğini kullanmak istersem ne olur? –

+0

Kütüphanenin bu şekilde kullanmayı amaçlamadığını düşünüyorum, ancak seçeneğinizi bir dizge haline getirebilir ve ardından Boole'nizi değerlendirmek için dizeyle eşleştirebilirsiniz. Muhtemelen opsiyonunuzun getter fonksiyonunda bunu yapabilirsiniz. İpucu için –

+0

Thx, ben bu şekilde deneyeceğim. –