मैं सिर्फ एक कंसोल उपयोगिता लिख रहा था और कमांड लाइन पार्सिंग के लिए NDesk.Options का उपयोग करने का निर्णय लिया। मेरा सवाल है, मैं आवश्यक कमांड लाइन विकल्पों को कैसे लागू करूं?NDesk.Options के साथ आवश्यक कमांड लाइन विकल्पों को कैसे लागू करें?
मैं docs में देखते हैं कि: एक आवश्यक मूल्य के साथ
विकल्प या एक वैकल्पिक मूल्य (विकल्प नाम को संलग्न '=') (संलग्न ':' विकल्प नाम के लिए)।
हालांकि, जब मैं विकल्प नाम के अंत में =
डालता हूं तो व्यवहार में कोई अंतर नहीं होता है। आदर्श रूप से पार्स विधि एक अपवाद फेंक देगा।
क्या मुझे कुछ और करने की ज़रूरत है?
class Program
{
static void Main(string[] args)
{
bool show_help = false;
string someoption = null;
var p = new OptionSet() {
{ "someoption=", "Some String Option", v => someoption = v},
{ "h|help", "show this message and exit", v => show_help = v != null }
};
List<string> extra;
try
{
extra = p.Parse(args);
}
catch (OptionException e)
{
System.Console.Write("myconsole: ");
System.Console.WriteLine(e.Message);
System.Console.WriteLine("Try `myconsole --help' for more information.");
return;
}
if (show_help)
{
ShowHelp(p);
return;
}
System.Console.WriteLine("==================");
System.Console.WriteLine(someoption);
}
static void ShowHelp(OptionSet p)
{
System.Console.WriteLine("Usage: myconsole [OPTIONS]");
System.Console.WriteLine();
System.Console.WriteLine("Options:");
p.WriteOptionDescriptions(System.Console.Out);
}
}
मैं एक ही समस्या है:
यहाँ संशोधित कोड की जिप है। सीम्स NDesk.Options अपवाद फेंक नहीं होगा। –