本文参考自唔愛吃蘋果的C#原始类型扩展方法—this参数修饰符,并在其基础上做了一些细节上的解释
1、this作为参数关键字的作用
使用this关键字,可以向this关键字后面的类型添加扩展方法,而无需给其创建新的派生类型...但是this关键字最主要的作用是对类型的重载方法的扩充,来满足自身的需求,因为有些类方法的重载方法可能不是很完善,而直接修改类型的条件不足(应为可能有些已经被编译成dll,有些测试.net框架的底层类)...不是静态变量而是成员变量
(2)、静态类的特点,如果一个静态类没有加构造函数,那么编译器会自动的给它加一个静态构造函数,静态构造函数是最早被调用的,只要有静态访问,那就先调用静态构造函数,接着调用非静态构造函数...这样是调不到FormatWith方法的,应为此时的FormatWith方法还没有被初始化,所以编译器会报错
?...ok,说明实例方法扩展成功
总结:上面的扩展方法的调用方式,看上去像是成员方法,但实际编译器会对this关键字做特殊处理,编译器生成的中间语言(IL)会将代码转换为对静态方法的调用,
因此,并未真正违反封装原则