C#函数过载
什么是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#函数过载的更多相关文章
- solidity语言13
函数过载 合约内允许定义同名函数,但是输入参数不一致 pragma solidity ^0.4.17; contract A { function f(uint _in) public pure re ...
- js函数中参数的传递
数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primitive type,比如Undefined,Null,Boolean,Number,String. 引用类型值,也就 ...
- 各个函数消耗的时间profiling和内存泄漏valgrind
来源:http://06110120wxc.blog.163.com/blog/static/37788161201333112445844/ ARM(hisi)上面的profiling和valgri ...
- UNIX网络编程——UDP 的connect函数(改进版)
上一篇我们提到,除非套接字已连接,否则异步错误是不会返回到UDP套接字的.我们确实可以给UDP套接字调用connect,然而这样做的结果却与TCP连接大相径庭:没有三次握手.内核只是检查是否存在立即可 ...
- Linux下getsockopt/setsockopt 函数说明
[ getsockopt/setsockopt系统调用 功能描述: 获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选项位于的层和 ...
- C语言函数库
C语言函数库 分类函数目录函数进程函数诊断函数接口子程序输入输出 str字符串操作函数mem操作存贮数组 数学函数 时间日期函数 转换函数 分类函数,所在函数库为ctype.h[top] int is ...
- 微信后端服务架构及其过载控制系统DAGOR
微信架构介绍 眼下的微信后端包含3000多个移动服务,包括即时消息.社交网络.移动支付和第三方授权.该平台每天收到的外部请求在10 ^10个至10^11个.每个这样的请求都会触发多得多的内部微服务 ...
- [pixhawk笔记]6-uORB流程及关键函数解析
本文中将结合代码.文档及注释,给出uORB执行流程及关键函数的解析,由于uORB的机制实现较为复杂,所以本文主要学习如何使用uORB的接口来实现通信.回到上一篇笔记中的代码: #include < ...
- react request.js 函数封装
1.request.js 函数封装 import { Toast } from 'antd-mobile'; import axios from 'axios'; import store from ...
随机推荐
- Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
What it is saying is, it found the DLL, but it couldn't find a type named "namespace.User" ...
- 关于Jquery获取Table中td内的内容
$(this).children().eq(1).text()获取的是显示的值$(this).children().eq(1).html()获取的是<td></td>之间的所有 ...
- JS开发HTML5游戏《神奇的六边形》(二)
近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击图片可进入游戏体验) 因内容 ...
- sql*loader的直接加载方式和传统加载方式的性能差异
1.确认数据库版本 2.数据准备 3.创建导入表及控制文件 4.直接加载方式演示 查看具体的日志: 5.传统加载方式演示 查看日志文件: 6.结论及两种方式的差异 经过比对direct比convent ...
- 【HDU1914 The Stable Marriage Problem】稳定婚姻问题
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1914 题目大意:问题大概是这样:有一个社团里有n个女生和n个男生,每位女生按照她的偏爱程度将男生排序, ...
- 表单的enctype property
enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码. 默认地,表单数据会编码为 "application/x-www-form-urlencoded".就是说,在 ...
- Android课程---视图组件总结
- C# 路径
一.根目录 .// 或者直接给出文件名称,是找根目录的路径 如:path = "test.xml" 与 path = ".//test.xml"是一个意思 二. ...
- DOM模型有三种
<!-- DOM模型有三种: DOM level 1:将HTML文档封装成对象. DOM level 2:在level 1基础加入新功能,比如解析名称空间. //<html xmlns=& ...
- css中width的计算方式,以及width:100%的参考系
PS:测试浏览器均为chrome. 首先说下负margin的影响. 正常html页面在显示时,默认是根据文档流的形式显示的.文档流横向显示时,会有一个元素横向排列的基准线,并且以最高元素的vertic ...