1.属性
属性就是封装了关联字段,set,get访问器的一个集合,他表现上像个字段(数据成员),实际上是个方法。
2. this与索引器
索引器和属性一样,拥有set和get访问器,使访问实例的数据,像访问数组一样。
3. 分部类和分部方法
分部类是指将类的声明分割成几个分部类的声明,存放在不同的文件或程序集中。分部方法是指方法的声明和实现分割, 存放在不同的文件或程序集中。
4. 输出参数
为了防止输入参数的初始值错误(或认为其是纯输出而不是输入),在方法内部必须先对输出值进行初始化。输出参数和ref参数本质应该是一样的,都是一个别名。
5. 参数数组
1)多个实参形式
2)数组实参形式
6. 命名参数
命名参数是指调用时,用命名的形式传递对应参数。
7. 可选参数
只有值参数才能作为可选参数
各种参数类型的顺序
8. 栈帧与递归
1)栈帧
在调用方法时,内存从栈的顶部开始分配,保存和方法关联的一些数据项。这块内存叫做方法的栈帧。栈帧包括以下内容:
(1)返回地址,也就是方法退出的时候继续执行的位置。
(2)方法参数。
(3)各种和方法调用相关的其他数据项。
在方法调用时,整个栈帧会被压入栈;方法退出时,整个栈帧会从栈上弹出(栈的展开)。
9. 扩展方法
拓展方法,对类的一种拓展。
- 声明拓展方法的类必须是static的,拓展方法本身也必须是static的
- 拓展方法一个参数必须加this关键字,后接要拓展的类。