Exemplo n.º 1
0
        //find or default a parameter with two arguments
        public Result Default <T, U>(string @switch, out T tval, out U uval,
                                     T tdef = default(T), U udef = default(U))
            where T : IConvertible where U : IConvertible
        {
            tval = tdef;
            uval = udef;
            int i = Args.IndexOf(@switch);

            if (i == -1)
            {
                return(Result.Missing);
            }
            if (i + 2 >= Args.Count)
            {
                Tell.MissingArgument(@switch);
                return(Result.Invalid);
            }
            if (!Aids.TryParse(Args[i + 1], out tval))
            {
                Tell.CouldNotParse(@switch, Args[i + 1]);
                return(Result.Invalid);
            }
            if (!Aids.TryParse(Args[i + 2], out uval))
            {
                Tell.CouldNotParse(@switch, Args[i + 2]);
                return(Result.Invalid);
            }
            Args.RemoveAt(i + 2);
            Args.RemoveAt(i + 1);
            Args.RemoveAt(i);
            return(Result.Good);
        }
Exemplo n.º 2
0
        //find or default a parameter with one argument
        public Result Default <T>(string @switch, out T val, T def = default(T)) where T : IConvertible
        {
            val = def;
            int i = Args.IndexOf(@switch);

            if (i == -1)
            {
                return(Result.Missing);
            }
            if (i + 1 >= Args.Count)
            {
                Tell.MissingArgument(@switch);
                return(Result.Invalid);
            }
            if (!Aids.TryParse(Args[i + 1], out val))
            {
                Tell.CouldNotParse(@switch, Args[i + 1]);
                return(Result.Invalid);
            }
            Args.RemoveAt(i + 1);
            Args.RemoveAt(i);
            return(Result.Good);
        }