2.类(class)
类是一个面向对象的概念,就是把数据和函数封装成一个集合,可以把现实中的事物抽象成一个类,数据代表熟悉,函数代表功能。
引用参数
1.使用引用参数时,必须在方法的声明和调用时都使用ref修饰符。
2.实参必须是变量,而且在用作实参前必须被赋值。如果是引用类型变量可以赋值一个引用或者null。
输出参数
1.和引用参数类似,但是输出参数使用out修饰符。
2.在带有输出参数的内部,必须为每一个输出参数赋一次值。
参数数组
- 一个参数列表中只能有一个参数数组。
- 如果有,它必须是列表中的最后一个。
- 使用params修饰符
- 与参数是数组类型不同,参数数组表面的是零或多个类型相同的参数。
可选参数
- 可选参数可以在调用时包含这个参数也可以省略。
- 只要声明函数的时候给参数赋值即可。
- 可选参数必须在必填参数之后。
- 省略可选参数是从可选参数列表最后开始的。
属性
- 属性和字段类似,只是多了两个方法:get、set
- set有一个隐式值类型参数vlue
- get默认是返回属性类型的方法
- 属性本身并没有存储空间
- 访问器决定如何处理发进来的数据和如何发出数据
- 部分用处:在设置值之前进行过滤
属性与公共字段
按照推荐的code实践,属性比公共字段更好,理由如下:
- 属性是函数成员而不是数据成员,允许你处理输入和输出,而公共字段不行。
- 属性可以只读或只写,而字段不行。
- 编译后的变量和编译后的属性语义不同。
如果要发布一个由其他代码引用的程序集,那么第二点将会带来一些影响。例如,有的时候开发人员会有公共的字段代替属性的冲动,因为如果以后需要为字段的数据增加处理逻辑的话可以再把字段改为属性。这没错,但是如果那样修改的话,所有访问这个字段的其他程序集都需要重新编译,因为字段和属性在编译后的语义不一样。另外,如果实现的是属性,那么只需要修改属性的实现,无需需重新编译访问它的其他程序集。
分部类和分部类型
类的声明可以分割成几个分部类的声明。
- 每个分部类的声明都含有一些类成员的声明。
- 类的分部类声明可以在同一文件中也可以在不同文件中。
- 每个分部类声明必须被标为partial class
另有分部方法、分部struct和interface 同理