[Clr via C#读书笔记]Cp8方法
Cp8方法
构造器
作用就是初始化所有成员字段;.ctor;派生类和基类都有自己的构造函数。默认有一个无参数的构造函数,值字段初始化为0,引用字段初始化为null;可以有多个构造器;
值类型的初始化其实是通过内联的方式来简化的语法;
结构的构造器
一般是new了再使用,new的含义是调用默认的构造器,不是创建引用对象;可以自己创造含参数的构造器。如果不适用new,那么结构就必须手动一个个的初始化赋值,全部赋值。
实例的构造器
就是最普通的实例构造器
类的构造器
静态构造器,用来初始化静态成员。这个没有默认的,必须手动设置。C#会自动设置为private,不需要手动设置;
任何一个类定义了静态构造器,JIT都会检查针对当前AppDomain又没有执行调用,如果有后面就不执行了,如果没有就要执行,反正确保只执行一次。
构造器运行的性能问题
这里了解一下就行了,基本上是编译器决定的。
操作符重载
特殊的方法重载
转换操作符方法
implicit和explicit;System.Decimal是一个典型的研究转换操作符的例子;
扩展方法
可以在不能修改的类上添加方法;比如后面的linq的扩展方法就是很常用的例子,实现链式调用;
实质是对一个静态方法的调用;
可以为接口实现扩展方法,任何实现了这个接口的类都可以使用到这个扩展方法。
扩展方法的规则和原则
静态类,静态方法,第一个参数必须是要扩展的类型,前面必须加this;
分部方法
类似分部类的理解方式吧,很少用到。