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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王志龙 中级黑马   /  2012-4-25 15:17  /  2003 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Struct和Class的区别?struct中的this和class中的this有何不同?

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

倒序浏览
•struct是值类型,内存分配在栈上,class是引用类型,内存分配在堆上。值类型不能设为null
•struct implicitly derived from System.ValueType
•对struct中变量赋值会产生赋值的一个拷贝

•struct没有继承,其成员不能用protected修饰,class可以继承和多态
•struct多用来存储数据,而class则作为类的抽象
•struct不能有初始化成员
•this的意义和class的this不同??

struct不能有显式无参构造器,因为其中的成员自动被初始化为默认值,其中的引用类型被设置为null。但可有静态无参构造器
class可以定义析构器,但struct不能
class用于对象建模,而struct更倾向于数据的整合
struct的构造器必须初始化所有成员,而class不需要
class使用实例时,必须使用new关键字,而struct不用
class作为参数时,是引用传递,而struct则为值传递

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
struct是值类型,内存分配在栈上,class是引用类型,内存分配在堆上,
引用类型可以为null而值类型不可以。
this是指示代词。表示当前。。用了它之后会有一个就近原则。。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
结构体是一种值类型,而类是引用类型。(值类型、引用类型是根据数据存储的角度来分的)
就是值类型用于存储数据的值,引用类型用于存储对实际数据的引用。那么结构体就是当成值来使用的,类则通过引用来对实际数据操作。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马