读你必须知道的.NET(四)
类(class)是面向对象编程的概念,是一种自定义数据结构类型,通常包含字段、属性、方法、构造函数、索引器、操作符等,在.NET中所有类都最终继承自System.Object类,是一种引用类型,也就是说,new一个类的实例时,对象保存了该实例实际数据的引用地址,而对象的值保存在托管堆中,其表现为行为,支持继承,可以继承自类和接口,但不能被struct继承,也不能从struct继承。
结构(struct)是一种值类型,用于将一组相关信息变量组织为一个单一的变量实体,所有结构都继承自System.ValueType类,struct实例分配在线程的堆栈上,本身存储了值,不包含指向该值的指针。两者语法类似,但struct常用于存储数据,它没有自定义的默认无参构造函数,只能声明带参构造函数,不能声明析构函数,可以继承自接口,但不能继承类或结构。
实例化时,class使用new关键字,但struct可以不用new关键字,如果不以new实例化struct,则其所有的字段将处于未分配状态,直到所有字段完成初始化,否则引用未赋值的字段会导致编译错误。
何时使用struct:
实现一个主要用于存储数据的结构时,可以考虑struct;struct变量占有堆栈空间,因此只适用于数据量相对小的场合;结构数组具有更高的效率;提供某些和非托管代码通信的兼容性。
http://www.cnblogs.com/anytao/archive/2007/04/24/must_net_04.html
作者:Ribbon 出处: http://www.cnblogs.com/Ribbon/
本文版权归作者和博客园共有,欢迎转载。未经作者同意下,必须在文章页面明显标出原文链接及作者,否则保留追究法律责任的权利。
如果您认为这篇文章还不错或者有所收获,可以点击右下角的【推荐】按钮,因为你的支持是我继续写作,分享的最大动力!