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

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#有了函数重载后。我们输出不同类型的数据就不用这样麻烦了。使用相同的函数不同数据类型,或者不同的形参个数就可以控制任意不同类型的数据的输出。

关于在C#中对函数重载理解的更多相关文章

  1. c++中的函数重载、函数重写、函数重定义

    目录 一.函数重载 二.函数重写 三.函数重定义 为了更加深刻的理解 函数重载.重写.重定义,我们可以带着如下这两个问题去思考: 1.子类中是否可以定义父类中的同名成员?为什么? 可以,因为子类与父类 ...

  2. C++解析(16):友元与类中的函数重载

    0.目录 1.友元的尴尬能力 2.类中的函数重载 3.小结 1.友元的尴尬能力 什么是友元? 友元是C++中的一种关系 友元关系发生在函数与类之间或者类与类之间 友元关系是单项的,不能传递 友元的用法 ...

  3. 《挑战30天C++入门极限》新手入门:C++中的函数重载

        新手入门:C++中的函数重载 函数重载是用来iostream>  using namespace std;  int test(int a,int b);  float test(flo ...

  4. js中的函数重载

    函数重载与js 什么是函数重载 重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数.类型或者顺序)必须不同,也就是说用 ...

  5. 从两个角度理解为什么 JS 中没有函数重载

    函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表(参数个数.类型.顺序)的函数,这组函数被称为重载函数.重载函数通常用来声明一组功能相似的函数,这样做减少了函数名的数量,避免了名字空 ...

  6. c++程序设计中的函数重载

    函数重载的意思是在一个作用域内(命名空间内)定义了某个或某些具有相同名称的函数,但是他们的参数列表和定义(实现)不相同,如果相同的话,就没啥意义了.当调用一个重载函数时,编译器会通过所使用的参数类型. ...

  7. 4.C++中的函数重载,C++调用C代码,new/delete关键字,namespace(命名空间)

    本章主要内容: 1)函数重载 2)C++调用C代码 3)new/delete关键字实现动态内存分配 4)namespace命名空间 大家都知道,在生活中,动词和不同的名词搭配一起,意义都会大有不同,比 ...

  8. PHP中实现函数重载

    转载自:http://cnn237111.blog.51cto.com/2359144/1284085 由于PHP是弱类型语言,因此函数的输入参数类型无法确定(可以使用类型暗示,但是类型暗示无法用在诸 ...

  9. C++类中的函数重载

    1,本课程最初阶段就学习了函数重载,但是那时研究目标仅限于全局函数,到目前 为止我们学习了三种函数: 1,全局函数: 2,普通成员函数: 3,静态成员函数: 这三种不同类型的函数之间是否可以构成重载, ...

随机推荐

  1. [mysql]tpcc相关及画图

    参考:http://blog.chinaunix.net/uid-26896862-id-3563600.html 参考:http://blog.chinaunix.net/uid-25266990- ...

  2. JQuery学习一

    第一个JQuery程序 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <he ...

  3. rwx

    常用的linux文件权限:444 r--r--r--600 rw-------644 rw-r--r--666 rw-rw-rw-700 rwx------744 rwxr--r--755 rwxr- ...

  4. UVALive-3263 That Nice Euler Circuit (几何欧拉定理)

    https://vjudge.net/problem/UVALive-3263 平面上有一个n个端点的一笔画,第n个端点总是和第一个端点重合,因此图示一条闭合曲线. 组成一笔画的线段可以相交,但不会部 ...

  5. [Luogu 4092] HEOI/TJOI2016 树

    [Luogu 4092] HEOI/TJOI2016 树 搜了树剖标签不知道怎么就跳出了个暴搜题啊! 管他既然做了就发上来吧- 有修改标签就向下搜并修改,遇到标签即停止. 这题是真的真的短. #inc ...

  6. PowerDesigner16 用例图

    用例图主要用来描述角色以及角色与用例之间的连接关系.说明的是谁要使用系统,以及他们使用该系统可以做些什么.一个用例图包含了多个模型元素,如系统.参与者和用例,并且显示这些元素之间的各种关系,如泛化.关 ...

  7. Golang向Templates 插入对象的值

    Go对象可以插入到template中,然后把对象的值表现在template中,你可以一层层的分解这个对象,去找他的子字段,当前对象用'.'来表示,所以当当前对象是一个string的时候,你可以用{{. ...

  8. Bzoj4710 [Jsoi2011]分特产

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 96  Solved: 62[Submit][Status][Discuss] Description ...

  9. UIImageView与UIScrollView的关系图

        UIImageView与UIScrollView的关系图           https://www.evernote.com/shard/s227/sh/0af9f23c-08e6-4be6 ...

  10. python初步学习-python数据类型-集合(set)

    集合 在已经学过的数据类型中: 能够索引的,如list/str,其中的元素可以重复 可变的,如list/dict,即其中的元素/键值对可以原地修改 不可变的,如str/int,即不能进行原地修改 无索 ...