public ITypelessCommandBuilder WithArgument <TParser, TArgument, TParserProperties>(string name, TParser parser,
                                                                                                TParserProperties?properties = null, Action <ITypelessCommandBuilder>?argument = null)
                where TParser : IArgumentParser <TArgument, TParserProperties>
                where TArgument : notnull
                where TParserProperties : struct
            {
                var builder =
                    new TypelessArgumentCommandBuilder <TParser, TArgument, TParserProperties>(name, parser, properties);

                if (argument is not null)
                {
                    argument(builder);
                }
                _children.Add(builder.Build());
                return(this);
            }
예제 #2
0
                                    TParser3, TArgument3, TParserProperties3, TParser4, TArgument4, TParserProperties4> WithArgument <
                TParser, TArgument, TParserProperties>(string name, TParser parser,
                                                       TParserProperties?properties = null, Action <ITypelessCommandBuilder>?argument = null)
                where TParser : IArgumentParser <TArgument, TParserProperties>
                where TArgument : notnull
                where TParserProperties : struct
            {
                // if we exceed 4 parameters, no type safety for you!
                var builder =
                    new TypelessArgumentCommandBuilder <TParser, TArgument, TParserProperties>(name, parser, properties);

                if (argument is not null)
                {
                    argument(builder);
                }
                _children.Add(builder.Build());
                return(this);
            }