什么是method?函数也。overloading,是过载的意思。为什么会过载呢?因为一个函数,本来后面拖着两个参数的,现在拖着三个参数了,那不是过载是什么?

为什么同一个函数,后面可以跟两个参数,也可以给跟三个甚至是更多个参数呢?因为,C#是一个强类型语言。而一个函数的类型的,是由返回值和参数情况决定的,参数情况不一样,那么函数就是不同的。这一点可以参考函数代表(delegate)的声明格式,它都是要把返回值和参数情况都明确的。既然是不同的函数,定义可以定义,使用也可以使用。这样有一个好处,就是可以造成默认参数情况的假象。

比如我默认的Decrease()函数是减一。那么我就只要传递一个被减数参数就可以了。但是非默认情况下,可以自己设置一个减去的数 ,这样,就需要两个参数了。因此,我可以设置名字相同的两个函数(本质是不同的)。一个只有一个被减数参数,一个含被减数和减数两个参数。那么当只有一个参数的时候,表现的就像是默认的一样的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
namespace DefaultDecrease
{
class Program  {
    static int  Decrease(int dividend)
        {
        return dividend --;
         }
    static int Decrease(int dividend,int divider)
        {
        return  dividend - divider;
         }
     
    public static void Main(string[] args)
        {
        int result;
        result = Decrease(10);//一个参数,默认减一.
        Console.WriteLine(result);
        result = Decrease(10,5);//两个参数,就是被减数减去减数啦,哈哈
        Console.WriteLine(result);
        Console.Write("Press any key to continue . . . ");
        Console.ReadKey(true);
        }
                }
}

对method overloading的理解,是建立在对C#强类型的特性知道的情况的。

C#函数过载的更多相关文章

  1. solidity语言13

    函数过载 合约内允许定义同名函数,但是输入参数不一致 pragma solidity ^0.4.17; contract A { function f(uint _in) public pure re ...

  2. js函数中参数的传递

    数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primitive type,比如Undefined,Null,Boolean,Number,String. 引用类型值,也就 ...

  3. 各个函数消耗的时间profiling和内存泄漏valgrind

    来源:http://06110120wxc.blog.163.com/blog/static/37788161201333112445844/ ARM(hisi)上面的profiling和valgri ...

  4. UNIX网络编程——UDP 的connect函数(改进版)

    上一篇我们提到,除非套接字已连接,否则异步错误是不会返回到UDP套接字的.我们确实可以给UDP套接字调用connect,然而这样做的结果却与TCP连接大相径庭:没有三次握手.内核只是检查是否存在立即可 ...

  5. Linux下getsockopt/setsockopt 函数说明

    [ getsockopt/setsockopt系统调用 功能描述:  获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选项位于的层和 ...

  6. C语言函数库

    C语言函数库 分类函数目录函数进程函数诊断函数接口子程序输入输出 str字符串操作函数mem操作存贮数组 数学函数 时间日期函数 转换函数 分类函数,所在函数库为ctype.h[top] int is ...

  7. 微信后端服务架构及其过载控制系统DAGOR

    微信架构介绍   眼下的微信后端包含3000多个移动服务,包括即时消息.社交网络.移动支付和第三方授权.该平台每天收到的外部请求在10 ^10个至10^11个.每个这样的请求都会触发多得多的内部微服务 ...

  8. [pixhawk笔记]6-uORB流程及关键函数解析

    本文中将结合代码.文档及注释,给出uORB执行流程及关键函数的解析,由于uORB的机制实现较为复杂,所以本文主要学习如何使用uORB的接口来实现通信.回到上一篇笔记中的代码: #include < ...

  9. react request.js 函数封装

    1.request.js  函数封装 import { Toast } from 'antd-mobile'; import axios from 'axios'; import store from ...

随机推荐

  1. R中list对象属性以及具有list性质的对象

    R语言list的特点:It has length, [[ and [ methods, and is recursive because list can contain other list!上图显 ...

  2. JAVA 线程同步异步简单实例

    package test; public class testThread { public static void main(String[] args) { Example example = n ...

  3. 支付宝APP支付之Java后台生成签名具体步骤

    /** *支付宝支付 * @param orderId 订单编号 * @param actualPay 实际支付金额 * @return */ private String getOrderInfoB ...

  4. Mysql的一些常用命令

    Mysql基本操作 创建表: create table test01_02(id varchar(50) not null auto_increment primary key, name nvarc ...

  5. javascript 与jquery为每个p标签增加onclick方法

    <script type="text/javascript"> window.onload=function(){ var items=document.getElem ...

  6. repeater单双行颜色不同,gridview repeater DataList 鼠标经过改变背景颜色

    1.gridview 双击GridView的OnRowDataBound事件: 在后台的GridView1_RowDataBound()方法添加代码,最后代码如下所示: protected void  ...

  7. 投行风云:FO的酸甜苦辣【转】

    全世界收入最高的工作大概就是投行的FO前台部门 (Front Office)部门了.但在拿高薪的同时,也伴随着很多人难以想象的苦逼生活.作为投行最低层的分析师(Analyst),通常需要从早上10点工 ...

  8. mysql中的字符串类型数据索引优化

    摘自 "高性能mysql" 对于一些字符串类型较长的字段搜索时, 可以参考如下方法

  9. phpcmsv9的评论分表策略

    comment_table表 comment表 comment_data_x表 我们留意到: comment_table表统计每个comment_data_x表里面有多少条记录, comment表只是 ...

  10. ansible使用笔记

    ansible使用笔记 介绍 ansible 是一个模型驱动的配置管理器,支持多节点发布.远程任务执行.默认使用 SSH 进行远程连接.无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展.an ...