C# 笔记3 - 重载一系列像python那样的print()方法

简介: C# 笔记3 - 重载一系列像python那样的print()方法

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);
        }
    }
}


目录
相关文章
|
2月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
40 3
|
4月前
|
存储 JSON 监控
告别Print,使用IceCream进行高效的Python调试
本文将介绍**IceCream**库,这个专门用于调试的工具显著提升了调试效率,使整个过程更加系统化和规范化。
156 2
告别Print,使用IceCream进行高效的Python调试
|
5月前
|
存储 C++ Python
[oeasy]python037_ print函数参数_sep分隔符_separator
本文介绍了Python中`print`函数的`sep`参数,即分隔符。通过回顾上文内容,解释了类型与`type`的概念,并强调了参数类型的重要性。文章详细探讨了`print`函数如何使用`sep`参数来分隔输出值,默认分隔符为空格(序号32)。还讨论了如何修改分隔符为其他字符,如冒号,并解释了为何反斜杠需要使用双反斜杠表示。最后,文章追溯了`sep`名称的由来,以及相关词汇的历史背景,如盎格鲁-萨克逊人的武器和语言。
187 0
|
5月前
|
算法 安全 测试技术
C#——刘铁猛笔记
C#——刘铁猛笔记
104 0
|
5月前
|
搜索推荐 Python
Leecode 101刷题笔记之第五章:和你一起你轻松刷题(Python)
这篇文章是关于LeetCode第101章的刷题笔记,涵盖了多种排序算法的Python实现和两个中等难度的编程练习题的解法。
45 3
|
5月前
|
算法 C++ Python
Leecode 101刷题笔记之第四章:和你一起你轻松刷题(Python)
这篇博客是关于LeetCode上使用Python语言解决二分查找问题的刷题笔记,涵盖了从基础到进阶难度的多个题目及其解法。
43 0
|
5月前
|
算法 C++ Python
Leecode 101刷题笔记之第三章:和你一起你轻松刷题(Python)
本文是关于LeetCode算法题的刷题笔记,主要介绍了使用双指针技术解决的一系列算法问题,包括Two Sum II、Merge Sorted Array、Linked List Cycle II等,并提供了详细的题解和Python代码实现。
38 0
|
5月前
|
算法 C++ 索引
Leecode 101刷题笔记之第二章:和你一起你轻松刷题(Python)
本文是关于LeetCode 101刷题笔记的第二章,主要介绍了使用Python解决贪心算法题目的方法和实例。
36 0
|
5月前
|
并行计算 Python
Python错误笔记(一):CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up env
这篇文章讨论了CUDA初始化时出现的未知错误及其解决方案,包括重启系统和安装nvidia-modprobe。
707 0
|
5月前
|
存储 开发工具 Python
【Python项目】外星人入侵项目笔记
【Python项目】外星人入侵项目笔记
64 3

热门文章

最新文章