[Clr via C#读书笔记]Cp8方法

Cp8方法

构造器

作用就是初始化所有成员字段;.ctor;派生类和基类都有自己的构造函数。默认有一个无参数的构造函数,值字段初始化为0,引用字段初始化为null;可以有多个构造器;
值类型的初始化其实是通过内联的方式来简化的语法;

结构的构造器

一般是new了再使用,new的含义是调用默认的构造器,不是创建引用对象;可以自己创造含参数的构造器。如果不适用new,那么结构就必须手动一个个的初始化赋值,全部赋值。

实例的构造器

就是最普通的实例构造器

类的构造器

静态构造器,用来初始化静态成员。这个没有默认的,必须手动设置。C#会自动设置为private,不需要手动设置;
任何一个类定义了静态构造器,JIT都会检查针对当前AppDomain又没有执行调用,如果有后面就不执行了,如果没有就要执行,反正确保只执行一次。

构造器运行的性能问题

这里了解一下就行了,基本上是编译器决定的。

操作符重载

特殊的方法重载

转换操作符方法

implicit和explicit;System.Decimal是一个典型的研究转换操作符的例子;

扩展方法

可以在不能修改的类上添加方法;比如后面的linq的扩展方法就是很常用的例子,实现链式调用;
实质是对一个静态方法的调用;
可以为接口实现扩展方法,任何实现了这个接口的类都可以使用到这个扩展方法。

扩展方法的规则和原则

静态类,静态方法,第一个参数必须是要扩展的类型,前面必须加this;

分部方法

类似分部类的理解方式吧,很少用到。

原文地址:https://www.cnblogs.com/newlifechou/p/8158126.html