public static string Print(FizzBuzzConfig config = null, Action <string> printAction = null) { if (config == null) { config = new FizzBuzzConfig(); } if (config.UpperBound < 1 || config.SmallNumber < 1 || config.LargeNumber < 1) { throw new FizzBuzzerNonPositiveException(); } var sb = new StringBuilder(); printAction = getDefaultPrintAction(sb, printAction); for (int i = 1; i <= config.UpperBound; i++) { if (i % config.SmallNumber == 0 || i % config.LargeNumber == 0) { if (i % config.SmallNumber == 0) { printAction(config.SmallNumberMatchWord); } if (i % config.LargeNumber == 0) { printAction(config.LargeNumberMatchWord); } printAction(Environment.NewLine); } else { printAction(i.ToString()); printAction(Environment.NewLine); } } return(sb.ToString()); }
public static string Print(int upperBound) { var config = new FizzBuzzConfig { UpperBound = upperBound }; return(Print(config)); }
public static void PrintToOutput(int upperBound, TextWriter writer) { var config = new FizzBuzzConfig { UpperBound = upperBound }; Print(config, writer.Write); }
public static void PrintToOutput(TextWriter writer, FizzBuzzConfig config = null) { Print(config, writer.Write); }