c#中既然有了类,为什么还要有结构这个类型呢?

或者说既然有了结构这个类型,为什么还要有类呢

要区分还的从源头说起,最初的结构也就定义几个成员变量而已,与类的差别很大的。这种类型与数组的结合在存储类似数据库的记录集还是很有用的。但是net上结构功能大大扩充了,除了没有构造函数和不可继承外,好像与类差不多了。但是在你绝定用那种类型时,有一个根本的差别是你的参拷,结构是值类型,类是引用类型,结构在变量之间传递时像基础变量一样复制一个副本过去,而类传递的只是个引用,多个变量可以引用同一个对象实例。所以类适合需要平凡传递时用,效率较高;结构适合存储之用,不仅生存速度较快,代码也较简单。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-11
结构体是值类型,它和int,flote,double,enum等一样都是值类型,而class、string(string本身就是类)是引用类型,他们的区别是在分配内存的时候,值类型在栈上,而引用类型在堆上,也就是说值类型是临时的,而引用类型一直在堆里,class c=new class();其中new class()返回在堆里面的地址,然后保存在c里面。所以用结构类型会很浪费内存,所以才有类这个东西
第2个回答  推荐于2017-10-01
最早以前是没有类只有结构的,而且现在的系统api中也有大量的结构,比如文件头等信息(包括其它语言比如c++等也有大量的结构存在),出于性能以及兼容性的考虑,所以还要继续保留结构体。本回答被提问者采纳
第3个回答  2014-08-11
一个值类型 一个引用类型,要求性能就用结构咯
相似回答