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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 资建文 中级黑马   /  2012-8-26 15:10  /  1667 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在DotNet中class和struct的异同是什么啊?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

3 个回复

倒序浏览
1,struct成员默认访问权限是public;
2.  class成员默认访问权限是private;
3.  struct 是值类型;
4.  class 是对象类型。
回复 使用道具 举报
struct是值类型
class是引用类型
构造函数的使用方法不同
回复 使用道具 举报
相同点:语法类似
不同点
•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变量是以按值方式传递的

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马