A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

请问struct和class的区别有哪些

5 个回复

正序浏览
1.性质不同
class是引用类型,继承自System.Object类
struct是值类型,继承自System.ValueType类
2.职能不同
class于封装行为(方法)
struct用于存储数据
3.特性不同
class支持继承,可以继承类、实现接口
struct不能继承类,也不能作为其他类的基类,但可以实现接口
class可以为抽象类,也可以声明抽象方法
struct不能为抽象,也不能声明抽象函数
4.实例化方式不同
class必须使用new关键字实例化
struct不需要使用new关键字
5.内存回收机制不同
class实例由垃圾回收机制来保证内存的回收处理
struct变量使用完后立即自动解除内存分配


鉴于struct占用的是栈空间,效率上会稍高一些,但容量相对较小,可以在存储少量数据时考虑使用

点评

谢谢 真是帮到我了  发表于 2013-8-5 17:11
回复 使用道具 举报 1 0
在类这个级别,不写访问修饰符默认为internal,但在类中定义变量或方法时,没写访问修饰符,那么会默认为private
回复 使用道具 举报
胡盼盼 发表于 2013-8-5 10:15
1.struct 是值类型,class是对象类型
2.struct 不能被继承,class可以被继承
3.struct 默认的访问权限是pub ...

类的默认访问权限好像是internal吧,在同一个Assembly中可以访问!
回复 使用道具 举报
1.struct 是值类型,class是对象类型
2.struct 不能被继承,class可以被继承
3.struct 默认的访问权限是public ,而class 默认的访问权限是private .
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马