[导入]Struct 和Class的区别,在C#中
2005-10-15 01:09
369 查看
今天比较郁闷,面试的时候被人问到这么个问题--如标题.
后来一看答案,觉得自己答错了.
根据C# programming reference给出来信息,Struct实质上还是用来实现轻量级别的类派用处的,这就意味着它还是可以有属性,方法(函数)以及标签等,唯一的区别在于,Struct在编程的时候不能由程序员申明构造函数,即使是默认(不带参数)的构造函数,同样也不能有析构的处理部分。这是因为Struct的构造函数是由编译器自动生成的。并且Struct的用途是那些描述轻量级的对象,例如Line,Point等,并且效率比较高。
偶觉得郁闷的倒不是答错题不能够通过面试。而是认为个人觉得这个Struct实在没有必要存在于C#的语言中。为什么呢?因为,类能够完全替代Struct的行为,唯一影响效率的问题在于,Struct是以传值的方式来传递的,而Class是以引用的方式来传递的。所以有人会说啦,如果系统中存在大量轻量级的对象,你就可以用Struct啦,那样效率高很多,我认为是脑子被牛踩过才会想出来这样的设计,你想,一个系统要是能够轻量级的对象多到影响效率的地步,那么就该好好考虑一下重新作设计。更何况,编译器还是会给构造函数于Struct的,因此,个人认为即使编译时刻它也没啥优势。
偶这个人很懒,想来对于这种Stupid Q没啥好感。反正也不知道是谁的损失,就记下来自己阿Q一番。
文章来源:http://spaces.msn.com/members/cp612sh/Blog/cns!1pfA_zw39CRZT9gIKZiTkqsw!119.entry
后来一看答案,觉得自己答错了.
根据C# programming reference给出来信息,Struct实质上还是用来实现轻量级别的类派用处的,这就意味着它还是可以有属性,方法(函数)以及标签等,唯一的区别在于,Struct在编程的时候不能由程序员申明构造函数,即使是默认(不带参数)的构造函数,同样也不能有析构的处理部分。这是因为Struct的构造函数是由编译器自动生成的。并且Struct的用途是那些描述轻量级的对象,例如Line,Point等,并且效率比较高。
偶觉得郁闷的倒不是答错题不能够通过面试。而是认为个人觉得这个Struct实在没有必要存在于C#的语言中。为什么呢?因为,类能够完全替代Struct的行为,唯一影响效率的问题在于,Struct是以传值的方式来传递的,而Class是以引用的方式来传递的。所以有人会说啦,如果系统中存在大量轻量级的对象,你就可以用Struct啦,那样效率高很多,我认为是脑子被牛踩过才会想出来这样的设计,你想,一个系统要是能够轻量级的对象多到影响效率的地步,那么就该好好考虑一下重新作设计。更何况,编译器还是会给构造函数于Struct的,因此,个人认为即使编译时刻它也没啥优势。
偶这个人很懒,想来对于这种Stupid Q没啥好感。反正也不知道是谁的损失,就记下来自己阿Q一番。
文章来源:http://spaces.msn.com/members/cp612sh/Blog/cns!1pfA_zw39CRZT9gIKZiTkqsw!119.entry
相关文章推荐
- C#中Struct与Class的区别
- C#中class与struct的区别
- C#中struct与class的区别
- C#中class与struct的区别
- C#中class与struct的区别
- C# 中Struct 与 Class 的区别(zz)
- c#中Class和Struct使用与性能的区别
- C#中class与struct的区别
- C#中class与struct的区别
- [转] C#中Struct与Class区别
- c#中class和struct区别
- C#中Struct与Class的区别
- C#中class与struct的区别
- c#中类与结构的区别 struct与class的区别
- C# 中struct 与class 的区别
- C#中class与struct的区别
- C#语法小知识(二)struct和class的区别
- c#中Class和Struct使用与性能的区别
- c#中struct和class的区别
- C#中class与struct的区别