CLR初始化的时候记着要计算syn同步块,和方法表指针,同时对其他字段重新排序,使之成为内存对齐的某种方式,
const readonly区别:
const 在编译时的值就是已知的,以后都不能改变,所有用到这个数据的地方都是内联使用的
readonly 它的值是动态初始化的,一旦初始化之后就不能再改变,就是说在调用构造函数之后这个值要确定下来,
并且以后都不能改变,注意const是在编译时就确定下来的,时间是不一样的。
重载:函数重载不能依赖ref out
嵌套类型可以访问嵌套它的类型的所有私有字段,反之则不可以。
静态构造函数翻译成.cctor()s,构造函数翻译为.ctor().
接口类型默认是abstract类型,所以有关接口的方法都是虚的。也就是为什么要虚化。
C#在子类中隐藏父类的方法是基于签名的,而C++在子类中隐藏父类的方法是基于函数名.
实现接口的类中有一个接口表指针,这个指针的主要作用是用来测试类型的兼容性的,
还有一个接口偏移量表,用来调用对应的方法的。
.NET中,注意equals()的比较,同时区别“相等”与“统一”的区别。