黑马程序员技术交流社区

标题: 在DotNet中class和struct的异同? [打印本页]

作者: 资建文    时间: 2012-8-26 15:10
标题: 在DotNet中class和struct的异同?
在DotNet中class和struct的异同是什么啊?

作者: 许庭洲    时间: 2012-8-26 15:45
1,struct成员默认访问权限是public;
2.  class成员默认访问权限是private;
3.  struct 是值类型;
4.  class 是对象类型。
作者: 李 玉林    时间: 2012-8-26 17:52
struct是值类型
class是引用类型
构造函数的使用方法不同
作者: mjbtdym    时间: 2012-9-5 07:15
相同点:语法类似
不同点
•class是引用类型 struct是值类型 class表现为行为;而struct常用于存储数据
•class支持继承,可以继承自类和接口 struct没有继承性 struct支持接口继承
•class可以声明无参构造函数,可以声明析构函数;而struct只能声明带参数构造函数,且不能声明析构函数
•实例化时,class要使用new关键字;而struct可以不使用new关键字
•class可以声明protected成员、virtual成员、sealed成员和override成员;而struct不可以,但是值得注意的是,struct可以重载System.Object的3个虚方法,Equals()、ToString()和GetHashTable()。
•class实例由垃圾回收机制来保证内存的回收处理;而struct变量使用完后立即自动解除内存分配。
•作为参数传递时,class变量是以按址方式传递;而struct变量是以按值方式传递的






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2