Evaluate(
            IStringCommandLineArgument realArg)
        {
            foreach (var arg in Arguments)
            {
                var splitArg = arg.Split('=');
                if (splitArg.Length != 2)
                {
                    continue;
                }

                if (UsesName(realArg, splitArg))
                {
                    return(splitArg[1]);
                }
            }
            return((realArg is ICommandLineArgumentDefault <string>) ? (realArg as ICommandLineArgumentDefault <string>).Default : null);
        }
        Evaluate(
            IStringCommandLineArgument realArg)
        {
            foreach (var arg in Arguments)
            {
                var splitArg = arg.Split('=');
                if (splitArg.Length != 2)
                {
                    continue;
                }

                if (UsesName(realArg, splitArg))
                {
                    return splitArg[1];
                }
            }
            return (realArg is ICommandLineArgumentDefault<string>) ? (realArg as ICommandLineArgumentDefault<string>).Default : null;
        }