• 关于在C#中对函数重载理解


          函数重载是个什么概念,才接触的这个概念的时候我也是完全昏了,还在自己看看了书后就理解了。那什么是函数重载呢?我个人理解的是在同一个作用域下有多个同名的函数,但是他们的形参的类型是不同的,或者参数个数是不同的。当我们调用这些函数时,怎么判断我们调用的是那一个函数呢,这个就要看你在使用重载函数时所传参数的类型或者参数个数。好了,话不说。看看代码就知道了。

    using System;
    namespace overload
    {
        class a
        {
            public void print()
            {
                Console.WriteLine("无参,无返回值的print");
            }
            public void print(int i)
            {
                Console.WriteLine("这个是有参有返回值的print");   
            }
            public void print(double i)
            {
                Console.WriteLine("这个是同参数个数,但是不同参数类型的print");
            }
            public void print(int i, int j)
            {
                Console.WriteLine("这个是参数同类型,但是不同个数的print");
            }
            public void print(double i, double j)
            {
                Console.WriteLine("这个是不同参数类型,不同参数个数的print");
            }
            //还可以写更多的重载print,我只是写了几个特别的,体现出函数重载的特性就好。
            //这里都是的是无返回值的函数重载,有返回值的函数重载也是一样的。当然不能通过是否有返回值来函数重载。
            //函数重载的要点是:相同函数名,不同形参类型,或者不同形参个数就好。。
        }
        class b
        {
            static void Main()
            {
                a temp = new a();
                temp.print();
                temp.print(1);
                temp.print(1.0);
                temp.print(1,2);
                temp.print(1.0,2.0);
                Console.ReadKey();
                
            }
        }
    }

    个人理解函数重载的作用:函数重载是可以减少我们对函数名的记忆工作。比如在C语言中我们定义一个输出函数print,如果我们输出不同类型的数据时。就要这样定义,print_int,print_str,print_double。因为在C语言中没有函数重载这个概念。C语言判断一个函数就只看函数名。所以对于输出不同类型的数据我们就只有定义不同的函数。但是在C#有了函数重载后。我们输出不同类型的数据就不用这样麻烦了。使用相同的函数不同数据类型,或者不同的形参个数就可以控制任意不同类型的数据的输出。

  • 相关阅读:
    vue react 路由是否包含id
    vue react初始化脚手架
    多线程编程基础
    模拟实现简化版List迭代器&嵌入List
    斐波那契数与二分法的递归与非递归算法及其复杂度分析
    C语言模拟实现多态
    C++智能指针剖析(下)boost::shared_ptr&其他
    C++智能指针剖析(上)std::auto_ptr与boost::scoped_ptr
    C++模板实现动态顺序表(更深层次的深浅拷贝)与基于顺序表的简单栈的实现
    C++—模板(2)类模板与其特化
  • 原文地址:https://www.cnblogs.com/ZERO-TAO/p/5462888.html
Copyright © 2020-2023  润新知