2016-03-08 8 views
6

मैं कंसोल एप्लिकेशन में एक बुलियन पैरामीटर पास करने का प्रयास करता हूं और Command Line Parser Library के साथ मान को संसाधित करता हूं।कमांड लाइन पार्सर लाइब्रेरी - बूलियन पैरामीटर

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

मैं के रूप में

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

कोई मतभेद हैं पैरामीटर पारित करने के लिए कोशिश की, प्रत्येक की कोशिश पर मैं मान के रूप में "true" मिलता है।

क्या कोई मुझे बता सकता है कि मुझे बूलियन false मान प्राप्त करने के लिए पैरामीटर कैसे पारित करना है?

संभव से बचने के लिए पूछता है, वहां एक स्ट्रिंग विकल्प जो सही ढंग से पारित हो जाता है है:

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

मैंने सोचा होगा कि बूलियन पैरामीटर मौजूद हैं या मौजूद नहीं हैं। उन्हें आवश्यकता और तर्क की आवश्यकता नहीं है - कोई विचार नहीं कि यह 'आवश्यक = सत्य' –

उत्तर

12

आप True या False जोड़ने की जरूरत नहीं है। -c का उपयोग True का मूल्यांकन करेगा। इसका उपयोग नहीं किया जाएगा False का मूल्यांकन करेगा। प्रलेखन में कहीं भी वर्बोज आउटपुट के लिए -v के साथ एक उदाहरण है। लेकिन मुझे अभी यह नहीं मिल रहा है। मुझे लगता है कि बूलियन विकल्पों के लिए Required=true आवश्यक नहीं है।

+0

के साथ कैसे काम करता है आप सही हैं, पास-सी का मूल्यांकन सही है अगर -सी पास नहीं हुआ है तो मुझे झूठा लगता है। लेकिन अगर मैं "आवश्यक" विकल्प का उपयोग करना चाहता हूं तो क्या होगा? –

+0

मुझे लगता है कि पुस्तकालय इस तरह इसका उपयोग करने का इरादा नहीं है, लेकिन आप अपना विकल्प एक स्ट्रिंग बना सकते हैं और फिर अपने बूलियन का मूल्यांकन करने के लिए स्ट्रिंग से मेल खाते हैं। आप शायद अपने विकल्प के गेटर फ़ंक्शन में ऐसा कर सकते हैं। संकेत के लिए –

+0

Thx, मैं इसे इस तरह से आजमाने जा रहा हूं। –

संबंधित मुद्दे