public void Parse(string[] args, Type type, ref object obj)
        {
            var longDict  = new Dictionary <string, OptionMember>();
            var shortDict = new Dictionary <char, OptionMember>();

            var arguments = GetArguments(args);

            GetOptionMemeberDictionary(type, ref longDict, ref shortDict);

            for (int i = 0; i < arguments.Count; i++)
            {
                var argument = arguments[i];

                OptionMember member = null;

                if (argument.key.Length == 1) //只有一个字符,猜测为短参数
                {
                    char key = argument.key[0];

                    shortDict.TryGetValue(key, out member);
                }

                if (member == null)
                {
                    longDict.TryGetValue(argument.key, out member);
                }

                if (member != null)
                {
                    if (member.option.ignoreEmpty && string.IsNullOrEmpty(argument.value))
                    {
                        //忽略空参数
                        continue;
                    }

                    member.SetValue(obj, argument.value);
                }
            }
        }