Exemple #1
0
        public static T GetArgument <T>(IEnumerable <string> arguments, string name, T defaultValue)
        {
            if (arguments == null)
            {
                return(defaultValue);
            }

            foreach (string arg in arguments)
            {
                if (arg.StartsWith("-") || arg.StartsWith("/"))
                {
                    int    pos     = arg.IndexOfAny(new[] { '=', ':' }, 1);
                    string argName = pos < 0 ? arg.Substring(1) : arg.Substring(1, pos - 1);
                    if (string.Compare(name, argName, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        string value = pos < 0 ? string.Empty : arg.Substring(pos + 1).Trim();
                        if (value.Length == 0)
                        {
                            if (typeof(T) == typeof(bool)) // special case for bool args: if it's there, return true
                            {
                                return((T)(object)true);
                            }

                            return(defaultValue);
                        }
                        return(Extensions.ChangeType(value, defaultValue));
                    }
                }
            }
            return(defaultValue);
        }
Exemple #2
0
        public static object GetArgument(string name, object defaultValue, Type conversionType, IFormatProvider provider)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }

            if (conversionType == null)
            {
                throw new ArgumentNullException("conversionType");
            }

            string s;

            if (!_namedArguments.TryGetValue(name, out s))
            {
                return(defaultValue);
            }

            if (conversionType == typeof(bool) && string.IsNullOrEmpty(s))
            {
                return(true);
            }

            return(Extensions.ChangeType(s, conversionType, defaultValue, provider));
        }
Exemple #3
0
        public static object GetArgument(int index, object defaultValue, Type conversionType, IFormatProvider provider)
        {
            if (!_positionArguments.TryGetValue(index, out string s))
            {
                return(defaultValue);
            }

            return(Extensions.ChangeType(s, conversionType, defaultValue, provider));
        }
Exemple #4
0
        public static T GetArgument <T>(int index, T defaultValue, IFormatProvider provider)
        {
            if (!_positionArguments.TryGetValue(index, out string s))
            {
                return(defaultValue);
            }

            return(Extensions.ChangeType(s, defaultValue, provider));
        }
Exemple #5
0
        public static T GetArgument <T>(string name, T defaultValue, IFormatProvider provider)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            if (!_namedArguments.TryGetValue(name, out string s))
            {
                return(defaultValue);
            }

            if (typeof(T) == typeof(bool) && string.IsNullOrEmpty(s))
            {
                return((T)(object)true);
            }

            return(Extensions.ChangeType(s, defaultValue, provider));
        }