/// <summary> /// All purpose print method event takes in Arrays as Ienumerables /// </summary> /// <param name="objectO">The object to print</param> /// <param name="preText">The text to place before the printing of the object</param> /// <param name="postText">The text that is rendered after the printing of the object</param> /// <param name="printType">See inner descriptions for printing types and functions</param> public static void P(this object objectO, string preText = "", string postText = "", JuPrintTypes printType = JuPrintTypes.AllNewLines) { if (objectO is IEnumerable && !(objectO is string)) { PrintEnumberable(objectO as IEnumerable, preText, postText, printType); } else { PrintStrindDependentOnPrintType(objectO.ToString(), preText, postText, printType); } }
/// <summary> /// Prints an Ienumerable, /// </summary> private static void PrintEnumberable(IEnumerable objEnumerable, string preText = "", string postText = "", JuPrintTypes printType = JuPrintTypes.AllNewLines) { var builder = new StringBuilder(); switch (printType) { case JuPrintTypes.AllNewLines: builder.Append(preText); builder.Append("\n"); foreach (var currentObject in objEnumerable) { builder.Append(String.Format("{0}\n", currentObject.ToString())); } builder.Append(preText); builder.Append("\n"); break; case JuPrintTypes.SingleLines: builder.Append(preText); builder.Append("{\t"); foreach (var currentObject in objEnumerable) { builder.Append(currentObject.ToString()); builder.Append(", "); } builder.Append("}\t"); builder.Append(postText); builder.Append("\n"); break; case JuPrintTypes.BulletinMode: builder.Append(preText); builder.Append("\n{"); foreach (var currentObject in objEnumerable) { builder.Append("\n\t"); builder.Append(currentObject.ToString()); } builder.Append("\n}"); break; } Console.WriteLine(builder);//Print line right here }
private static void PrintStrindDependentOnPrintType(string objectToString, string preText, string postText, JuPrintTypes printTypes) { var returnValue = String.Empty; switch (printTypes) { case JuPrintTypes.AllNewLines: returnValue = String.Format("{1}\n{0}\n{2}", objectToString, preText, postText); break; case JuPrintTypes.SingleLines: returnValue = String.Format("{1} : {0} ; {2}", objectToString, preText, postText); break; case JuPrintTypes.BulletinMode: returnValue = String.Format("{1}\n\t{0}\n{2}", objectToString, preText, postText); break; } Console.WriteLine(returnValue); }