《C#图解教程》读书笔记之三:方法
本篇已收录至《C#图解教程》读书笔记目录贴,点击访问该目录可获取更多内容。
一、方法那些事儿
(1)方法的结构:方法头—指定方法的特征,方法体—可执行代码的语句序列;
(2)方法的调用:参数、值参数、引用参数、输出参数、参数数组;
①参数:
形参—本地变量,声明在参数列表中;形参的值在代码开始之前被初始化;
实参—实参的值用于初始化形参;
②值参数:
为形参在栈上分配内存,将实参的值复制到形参;

③引用参数:
不为形参在栈上分配内存,形参的参数名作为实参变量的别名指向同一位置,必须使用ref关键字,并且事先需要被赋值;

④输出参数:
基本同引用参数一样,但是必须在方法内进行赋值,必须使用out关键字,不需事先被赋值;

⑤参数数组:
一个参数列表中只能有一个参数数组;如果有,它必须是形参列表中最后一个;数组中所有参数必须是同一种类型;

(3)方法的重载:一个类中有一个或以上的方法有相同的名称;如何区分?方法签名
二、栈帧与递归
(1)栈帧:在调用方法的时候,内存从栈顶开始分配,保存和方法关联的一些数据项。这块内存叫做方法的栈帧。
栈帧包括:返回地址、方法的值参数或参数数组、其他管理数据项;

(2)递归:方法本身调用自身,为每一次方法调用把新的栈帧压入栈顶;

三、本章思维导图

附件
思维导图(jgp,pdf及mmap文件)下载:http://pan.baidu.com/s/1kTum9gF
《C#图解教程》读书笔记之三:方法的更多相关文章
- C#图解教程读书笔记(第5章 方法)
类型推断和var关键字 从C#3.0开始,可以在变量声明的开始部分的的位置使用新的关键字var. Var关键字并不是某种特别类型的符号.它只是句法上的速记,表示任何可以从初始化的右边推断出的类型. V ...
- C#图解教程读书笔记(第15章 委托)
委托是C#的一个很重要的知识点. 1.什么是委托 委托在我认为,就是一系列格式相同的方法列表,可能就是定义的名称不一致,参数.返回值等都是一样的. 2.如何声明委托 delegate void MyF ...
- C#图解教程读书笔记(第7章 类和继承)
1.所有的类都继承自object 2.如何隐藏基类的成员 要隐藏一个继承的数据成员,需要声明一个新的相同类型的成员,并使用相同的名称. 通过在派生类中声明新的带有相同签名的函数成员,可以隐藏或掩盖继承 ...
- C#图解教程读书笔记(第4章 类:基础)
类成员包括数据成员和函数成员. 和C/C++不同,C#在类型的外部不能声明全局变量,所有的字段都属于类型,而且必须在类型声明内部声明. 和C/C++不同,方法没有返回默认类型,所有方法必须包含返回类型 ...
- C#图解教程读书笔记(第1章 C#和.net框架)
C#中的主要需要记住的基础概念 CLR公共语言运行库 CIL中间语言,所有的代码都会编译成中间语言. CLI公共语言基础结构 C#的优点 C#有自动垃圾回收机制
- C#图解教程读书笔记(第9章 语句)
文件头的Using是Using指令,不是using语句 using (TextWriter tw = File.CreateText("xixi.txt")) { tw.Write ...
- C#图解教程读书笔记(第8章 表达式和运算符)
表达式 字面量 整数字面量 字符字面量 字符串字面量 求值顺序 优先级 结合性 与C和C++不同,在C#中的数字不具有布尔意义. 各种运算符的作用(过) 用户定义类型转换 class XiXiInt ...
- C#图解教程读书笔记(第6章 类进阶)
类成员声明语句由下列部分组成:核心声明.一组可选的修饰符和一组可选的特性(attribute). [特性] [修饰符] 核心声明 修饰符: 如果有修饰符,必须放在核心声明之前. 如果有多个修饰符,要有 ...
- C#图解教程读书笔记(第3章 类型、存储及变量)
1.C#的中的数值不具有bool特性. 2.dynamic在使用动态语言编写的程序集时使用,这个不太明白,看到后面需要补充!! 动态化的静态类型 3.对于引用类型,引用是存放在栈中,而数据是存放在堆里 ...
- C#图解教程读书笔记(第2章 C#编程概述)
这章主要是一个对于C#程序的概括解释 和C/C++不同,不是用include声明引用的头文件,而是通过using的方式,声明引用的命名空间. 命名和C/C++类似,并且也是区分大小写的,这件事情在VB ...
随机推荐
- 调整Win7中TCP/IP半开连接数限制
调整Win7中TCP/IP半开连接数限制 相信大家都有过这样的经历,普通的ADSL宽带下,打开下载工具下载资源时,再想浏览网页就会变得非常困难了,Windows7中也未能幸免. 究其原因 ...
- tomcat集群实例重复执行
http://www.cnblogs.com/interdrp/p/3458882.html
- 《CODE》读后笔记——第1~13章
1.电筒密谈 Morse code表 文中提到"英语词汇就是一种编码".这句话仿佛有一种哲学思想在里面,万物皆可以以任何形式编码,只是编码的方式和途径不同.有些编码简单易懂易于接受 ...
- Shell--用户配置
vim /etc/profileexport PS1='\[\e[1;33m\]\h\[\e[m\] \t [\[\e[1;36m\]\w\[\e[m\]] [\u] ' export LANG= ...
- iOS emoji表情转码 或者判断
如果项目中有评论或者信息恢复的地方,往往会用到emoji,有时候如后台不支持emoji,就会显示乱码错误,我们可以把emoji转成unicode编码或者utf8编码格式传给服务器.当然如果后台服务器接 ...
- javascript总结
javascript:它是一种script脚本语言 脚本语言:就是可以和HTML混合在一起使用的语言,可以用来在IE的客 户端进行程序编制,从 ...
- Python 第五天 递归,计算器(2)
利用函数编写如下数列: 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584, ...
- 文件操作总结 (Path,Directory,File)
Path类就是对字符串的操作,与实际的文件没有任何关系 属性: Path.GetFileName("路径"), //获取文件名带后缀: Path.GetFileNameWithou ...
- 使用html2canvas实现批量生成条形码
/*前台代码*/ <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Generat ...
- Android Studio Gradle 问题 解决方案
将AS2.0升到2.1.3出现的问题: Error:No service of type Factory available in ProjectScopeServices. 在项目中找到build ...