[转] C#中Struct与Class区别

根据C# programming reference给出来信息,Struct实质上还是用来实现轻量级别的类派用处的,这就意味着它还是可以有属性,方法(函数)以及标签等,唯一的区别在于,Struct在编程的时候不能由程序员申明构造函数,即使是默认(不带参数)的构造函数,同样也不能有析构的处理部分。这是因为Struct的构造函数是由编译器自动生成的。并且Struct的用途是那些描述轻量级的对象,例如Line,Point等,并且效率比较高。
 
偶觉得郁闷的倒不是答错题不能够通过面试。而是认为个人觉得这个Struct实在没有必要存在于C#的语言中。为什么呢?因为,类能够完全替代Struct的行为,唯一影响效率的问题在于,Struct是以传值的方式来传递的,而Class是以引用的方式来传递的。所以有人会说啦,如果系统中存在大量轻量级的对象,你就可以用Struct啦,那样效率高很多,我认为是脑子被牛踩过才会想出来这样的设计,你想,一个系统要是能够轻量级的对象多到影响效率的地步,那么就该好好考虑一下重新作设计。更何况,编译器还是会给构造函数于Struct的,因此,个人认为即使编译时刻它也没啥优势。
posted @ 2011-05-10 14:40  coding111  阅读(257)  评论(0编辑  收藏  举报