日期:2014-05-18  浏览次数:20674 次

在类和结构选择时候的理论问题
如果声明一个含有 100 个 对象的数组,结构直接在声明的时候在栈里面创建100个内存地址,类却要在引用的时候在堆里面创建100个内存地址,还要在栈里面创建100个相对的指定引用附加内存。。故这个时候要选用struck成本更低!这是我理解的类和结构的区别和选择运用时的标准!不知道是不是正确的??更望高人进一步加深,让小弟更深层理解!

------解决方案--------------------
从技术层面,类建于托管堆之上,属于引用型,而结构则是建立于堆栈上,属于值类型
从面向对象的思想上,类用于表述实体(我们不仅需要关注“这是什么”,而且需要关注“这是哪个”),而结构可以用来表述值对象(我们只需要关注“这是什么”),由于实体有一个“键”,因此软件系统不得不去维护这个“键”(也就是引用),因此类的开销要比结构大得多。
并非业务领域中的所有对象都需要定义成类。

------解决方案--------------------
类是引用类型,而结构是值类型。

引用类型在堆中分配,内存管理由垃圾回收器处理。

值类型在堆栈上或以内联方式分配,且在超出范围时释放。

通常,值类型的分配和释放开销更小。

然而,如果在要求大量的装箱和取消装箱操作的情况下使用,则值类型的表现就不如引用类型。