shared

来源:互联网 发布:搞笑网络短剧前十名 编辑:程序博客网 时间:2024/05/16 18:14
如果考虑内存使用的问题,大家可能不得不从Windows内存管理机制想起,那样会是个比较复杂的问题,但你可以参考DOS内存分配机制的原理来理解问题,虽然Windows已经完全改变了内存分配的机制,但原理仍然是可以套用的. 一个Shared的代码(方法或是属性)是在你定义类时被加载的(或说进行内存分配的),这也是你不需要实例化类就可以调用的原因,而非Shared的属性或方法在你声明一个变量时仅仅分配了一个变量指针而非类对象实体,只在你New时才被分配真正的内存单元,这就是内存使用上的区别了,再涉及深一点,Shared更象占用一个应用的Data   Segment,而非Shared的使用的是Stack   Segment内存,这其中单元线程和单线程模型又是有所区别的.对于创建类的实例来说,Shared的代码并不会加载在每个实例的内存空间中,而是在一个全局的类空间中,所有实例调用的都应该是同一个代码段而不是每个实例中独立的代码段(哪怕那些代码完全相同),这也使得Shared的方法只可以访问Shared的属性,而不能访问非Shared的属性,因为只有他们才属于同一个内存空间中.