System.CommandLine.ParseResult.AddImplicitOptionsAndCheckForErrors C# (CSharp) Méthode

AddImplicitOptionsAndCheckForErrors() private méthode

private AddImplicitOptionsAndCheckForErrors ( ) : void
Résultat void
        private void AddImplicitOptionsAndCheckForErrors()
        {
            foreach (var result in RootCommandResult.AllSymbolResults().ToArray())
            {
                if (result is CommandResult command)
                {
                    foreach (var symbol in command.Command.Children)
                    {
                        if (symbol.Argument.HasDefaultValue &&
                            command.Children[symbol.Name] == null)
                        {
                            switch (symbol)
                            {
                                case IOption option:
                                    command.AddImplicitOption(option);
                                    break;
                            }
                        }
                    }

                    if (!command.IsArgumentLimitReached &&
                        command.Command.Argument.HasDefaultValue)
                    {
                        var defaultValue = command.Command.Argument.GetDefaultValue();

                        if (defaultValue is string stringArg)
                        {
                            command.TryTakeToken(new Token(stringArg, TokenType.Argument));
                        }
                        else
                        {
                            command.UseDefaultValue = true;
                        }
                    }
                }

                var error = result.Validate();

                if (error != null)
                {
                    _errors.Add(error);
                }
            }

            if (CommandResult.Command is Command cmd &&
                cmd.Handler == null && 
                cmd.Children.OfType<ICommand>().Any())
            {
                _errors.Insert(0,
                               new ParseError(
                                   CommandResult.ValidationMessages.RequiredCommandWasNotProvided(),
                                   CommandResult));
            }
        }