/// <summary>
        /// Prints a user friendly usage string describing the command line argument syntax.
        /// </summary>
        /// <param name="output">The command line output.</param>
        public void ShowUsage(CommandLineOutput output)
        {
            if (output == null)
            {
                throw new ArgumentNullException(@"output");
            }

            foreach (Argument arg in arguments)
            {
                output.PrintArgumentHelp(@"/", arg.LongName, arg.ShortName,
                                         arg.Description, arg.ValueLabel, arg.ValueType);
                output.NewLine();
            }

            if (SupportsResponseFiles)
            {
                output.PrintArgumentHelp(@"@", null, null, Resources.CommandLineArgumentParser_ResponseFileDescription,
                                         Resources.CommandLineArgumentParser_ResponseFileValueLabel, typeof(string));
                output.NewLine();
            }

            if (defaultArgument != null)
            {
                output.PrintArgumentHelp(null, null, null, defaultArgument.Description, defaultArgument.ValueLabel, defaultArgument.ValueType);
                output.NewLine();
            }
        }
        /// <summary>
        /// Prints a user friendly usage string describing the command line argument syntax.
        /// </summary>
        /// <param name="output">The command line output.</param>
        public void ShowUsage(CommandLineOutput output)
        {
            if (output == null)
                throw new ArgumentNullException(@"output");

            foreach (Argument arg in arguments)
            {
                output.PrintArgumentHelp(@"/", arg.LongName, arg.ShortName,
                    arg.Description, arg.ValueLabel, arg.ValueType);
                output.NewLine();
            }

            if (SupportsResponseFiles)
            {
                output.PrintArgumentHelp(@"@", null, null, Resources.CommandLineArgumentParser_ResponseFileDescription,
                    Resources.CommandLineArgumentParser_ResponseFileValueLabel, typeof (string));
                output.NewLine();
            }

            if (defaultArgument != null)
            {
                output.PrintArgumentHelp(null, null, null, defaultArgument.Description, defaultArgument.ValueLabel, defaultArgument.ValueType);
                output.NewLine();
            }
        }