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
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
256 1
|
1月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
168 0
|
3月前
|
机器学习/深度学习 数据采集 数据挖掘
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
基于 GARCH -LSTM 模型的混合方法进行时间序列预测研究(Python代码实现)
|
3月前
|
调度 Python
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
微电网两阶段鲁棒优化经济调度方法(Python代码实现)
|
2月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
312 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
2月前
|
算法 调度 决策智能
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)
|
3月前
|
机器学习/深度学习 数据采集 算法
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
【CNN-BiLSTM-attention】基于高斯混合模型聚类的风电场短期功率预测方法(Python&matlab代码实现)
198 4
|
3月前
|
机器学习/深度学习 数据采集 TensorFlow
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
基于CNN-GRU-Attention混合神经网络的负荷预测方法(Python代码实现)
107 0
|
2月前
|
XML 前端开发 C#
C#编程实践:解析HTML文档并执行元素匹配
通过上述步骤,可以在C#中有效地解析HTML文档并执行元素匹配。HtmlAgilityPack提供了一个强大而灵活的工具集,可以处理各种HTML解析任务。
149 19
|
3月前
|
监控 算法 C#
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
477 0

推荐镜像

更多