如何检查Parse(args)是对还是错

时间:2019-03-18 17:23:29

标签: c# ndesk.options

我的代码没有引发任何错误。我使用了NDesk选项集并添加了2个字符串参数。我可以看到它在args中提取了正确的名称。但是,当我使用parse(args)时,它不会抛出错误。所以我假设它正在工作。

我正在尝试检查p(args)是对还是假。但是我不能对List<string>使用bool表达式。

任何帮助我如何做到这一点的人。如果parse具有正确的参数,我想执行函数。

我的代码就是这样

private static Regex fileNamePattern = new Regex(@"^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}[.]pdf$", RegexOptions.Compiled | RegexOptions.IgnoreCase); 

//missing method name
{
    string inputFile;
    string outputFile;
    var p = new OptionSet() {
        {"i"," pdf file",v=>inputFile=v},{"o","index file with kws",v=>outputFile=v},
    };

    Console.WriteLine($"args length: {args.Length}");
    Console.WriteLine($"args 0: {args[0]}");
    Console.WriteLine($"args 1: {args[1]}");

    p.Parse(args); //I would like to use this if(parse(args))
    {

    }
    // 
}

private static void UpdateImportIndexFile(string inputFile, string outputFile)
{
    using (var dip = File.CreateText(outputFile))
    {
        var match = fileNamePattern.Match(Path.GetFileName(MainFilePath));
        if (match.Success)
        {
            //create text file (outputfile);
        }
    }
}

1 个答案:

答案 0 :(得分:2)

由于p是类的实例,并且parse方法不支持返回模拟,在某种意义上,TryParse的功能将您的解析包装在{{1 }}阻止

try

有关更多信息,http://www.ndesk.org/doc/ndesk-options/NDesk.Options/OptionSet.html#M:NDesk.Options.OptionSet.Parse(System.Collections.Generic.IEnumerable{System.String})