C# 笔记 - 自定义print
写习惯了python,想要一个那样的print()函数,那么将C#中的Console.WriteLine()进行包装吧。遇到一个新的类型在定义一个新的重载print()方法。
- Base类下的这一些列重载的print()方法是为了像python的print()那样打印变量而写的;
- 支持C#基本数据类型。对于数组,暂时仅写了一维。但是对于Arraylist可以使用多维,已经通过递归打印;
- 如果你使用Console.WriteLine()来打印数据,它对于ArrayList等复合类型,不使用遍历,只能打印出表明对象类型的字符串,而如果是多层的复合类型,则需要在每个多层的元素处使用遍历,这样即使打印出来也会占用很多的行,不便于查看,更无法直观感受该列表又多少层。
以下代码工参考之:
/* * Jack Lee * 2021-03 */ using System; using System.IO; using System.Collections; namespace Ljc { class Base { /* *一些基于个人书写习惯的常用方法 */ public static String print_str() { return "\n"; } public static void print() { Console.WriteLine(Base.print_str()); } public static String print_str(object obj) { //print("print obj_str 被调用了"); if (obj.GetType() == typeof(String)) { return print_str(obj.ToString()); } else if (obj.GetType() == typeof(Char)) { return print_str(obj.ToString()); } else if (obj.GetType() == typeof(ArrayList)) { // 参与 ArrayList 的递归调用过程 ArrayList subArray = obj as ArrayList; return print_str(subArray); } else { return (obj.ToString()); } } public static void print(object obj) { Console.WriteLine(Base.print_str(obj)); } public static String print_str(char cr) { return "\'" + cr + "\'"; } public static void print(char cr) { Console.WriteLine(Base.print_str(cr)); } public static String print_str(string str) { return "\"" + str + "\""; } public static void print(string str) { Console.WriteLine(Base.print_str(str)); } public static String print_str(int num) { return num.ToString(); } public static void print(int num) { Console.WriteLine(Base.print_str(num)); } public static String print_str(double num) { return num.ToString(); } public static void print(double num) { Console.WriteLine(Base.print_str(num)); } public static String print_str(float num) { return num.ToString(); } public static void print(float num) { Console.WriteLine(Base.print_str(num)); } public static String print_str(long num) { return num.ToString(); } public static void print(long num) { Console.WriteLine(Base.print_str(num)); } public static String print_str(short num) { return num.ToString(); } public static void print(short num) { Console.WriteLine(Base.print_str(num)); } public static String print_str(uint num) { return num.ToString(); } public static void print(uint num) { Console.WriteLine(Base.print_str(num)); } public static String print_str(ushort num) { return num.ToString(); } public static void print(ushort num) { Console.WriteLine(Base.print_str(num)); } public static String print_str(ulong num) { return num.ToString(); } public static void print(ulong num) { Console.WriteLine(Base.print_str(num)); } public static String print_str(bool bl) { if (bl == true) { return "true"; } else { return "false"; } } public static void print(bool bl) { Console.WriteLine(Base.print_str(bl)); } public static String print_str(byte num) { return num.ToString(); } public static void print(byte num) { Console.WriteLine(Base.print_str(num)); } public static String print_str(decimal num) { return num.ToString(); } public static void print(decimal num) { Console.WriteLine(Base.print_str(num)); } public static String print_str(int[] list) { string astr = "["; foreach (int i in list) { string intString = Convert.ToString(i); if (astr == "[") { astr = astr + intString; } else { astr = astr + ", " + intString; } }; astr = astr + "]"; return astr; } public static void print(int[] list) { Console.WriteLine(Base.print_str(list)); } public static String print_str(double[] list) { string astr = "["; foreach (double i in list) { string intString = Convert.ToString(i); if (astr == "[") { astr = astr + intString; } else { astr = astr + ", " + intString; } }; astr = astr + "]"; return astr; } public static void print(double[] list) { Console.WriteLine(Base.print_str(list)); } public static String print_str(float[] list) { string astr = "["; foreach (float i in list) { string intString = Convert.ToString(i); if (astr == "[") { astr = astr + intString; } else { astr = astr + ", " + intString; } }; astr = astr + "]"; return astr; } public static void print(float[] list) { Console.WriteLine(Base.print_str(list)); } public static String print_str(char[] list) { if (list.Length == 0) { string astr = "[]"; return astr; } else { string astr = "["; for (int i = 0; i < list.Length; i++) { if (i == list.Length - 1) { astr = astr + "\"" + list[i] + "\""; } else { astr = astr + "\"" + list[i] + "\", "; } } astr = astr + "]"; return astr; } } public static void print(char[] list) { Console.WriteLine(Base.print_str(list)); } public static String print_str(string[] list) { if (list.Length == 0) { string astr = "[]"; return astr; } else { string astr = "["; for (int i = 0; i < list.Length; i++) { if (i == list.Length - 1) { astr = astr + "\"" + list[i] + "\""; } else { astr = astr + "\"" + list[i] + "\", "; } } astr = astr + "]"; return astr; } } public static void print(string[] list) { Console.WriteLine(Base.print_str(list)); } public static String print_str(ArrayList list) { string astr = "["; int len = list.Capacity; for (int i = 0; i < len; i++) { if (i < len - 1) { String oneastr = Base.print_str(list[i]); astr = astr + oneastr + " ,"; } else { String oneastr = Base.print_str(list[i]); astr = astr + oneastr; }; } astr = astr + "]"; return astr; } public static void print(ArrayList list) { String astr = Base.print_str(list); Console.WriteLine(astr); } } }