public void Run(string[] args) { var options = new DecoderArgs(); for (var i = 0; i < args.Length; i++) { if (args[i][0] == '-') { var key = args[i].Substring(1).ToLower().Trim(); var value = ""; if (key == "decode") { continue; } else if (i < args.Length - 1) { i++; value = args[i]; switch (key) { case "outputfile": options.strOutputFileName = value; break; case "inputfile": options.strInputFileName = value; break; case "modelfile": options.strModelFileName = value; break; case "outputsegfile": options.strOutputSegFileName = value; break; case "thread": options.thread = int.Parse(value); break; case "nbest": options.nBest = int.Parse(value); break; case "prob": options.probLevel = int.Parse(value); break; case "maxword": options.maxword = int.Parse(value); break; default: var cc = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("No supported {0} parameter, exit", key); Console.ForegroundColor = cc; Usage(); return; } } else { var cc = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("{0} is invalidated parameter.", key); Console.ForegroundColor = cc; Usage(); return; } } } if (options.strInputFileName == null || options.strModelFileName == null) { Usage(); return; } Decode(options); }