黑马程序员技术交流社区
标题:
在dotnet中类(class)与结构(struct)的异同?
[打印本页]
作者:
鸡蛋壳
时间:
2013-12-15 18:04
标题:
在dotnet中类(class)与结构(struct)的异同?
本帖最后由 鸡蛋壳 于 2013-12-16 15:04 编辑
在
dotnet
中类
(class)
与结构
(struct)
的异同?
作者:
许庭洲
时间:
2013-12-15 18:39
1. Class可以被是实例化,属于引用类型,是分配在内存的堆上的。类是引用传递的。
2. Struct属于值类型,是分配在内存的栈上的。结构体是复制传递的。
作者:
王子斌
时间:
2013-12-15 20:44
我们可以简单的理解,class是一个可以动的机器,有行为,有多态,有继承; 而struct就是个零件箱,组合了不同结构的零件。其实,class和struct最本质的区别就在于class是引用类型,内存分配于托管堆; 而struct是值类型,内存分配于线程的堆栈上
作者:
y494890511
时间:
2013-12-15 22:18
1.类是存储在堆上的引用类型
2.结构是存储在栈上的值类型
3.结构不支持继承,类可以继承
4.较小的数据类型使用结构可以提高性能
5.结构和类非常相似,主要区别是使用关键字struct代替class来声明结构
6.结构和类都使用new来声明实例
作者:
§風過無痕§
时间:
2013-12-15 23:53
类型不同
一个可以被继承 一个不可以
在内存中的分配不同
声明实例是类(class)必须用new 而结构(struct)可以不用
结构(struct)可以看着是一个受限制的小类 呵呵 个人观点
作者:
yuanlianxi03
时间:
2013-12-16 09:09
struct是结构类型,它属于值类型
class是类类型,它属于引用类型
结构类型不能继承其他的类型,只能直接继承System.VauleType,结构类型也不能被其他类型继承,因为所有结构都是密封的。
类类型的限制没有那么多,可以使用的功能也更多。
关于内存分配,值类型的局部变量是在线程栈上分配的,所有引用类型都是在托管堆中存放
作者:
岁月渲染
时间:
2013-12-16 13:13
Class类可以被实例化,属于引用类型,分配内存在堆上,类是引用传递。
Struct结构是值类型,分配内存在栈上,结构体是复制传递的,Int32、Boolean等都是结构体。
作者:
刘安成
时间:
2013-12-16 13:18
我来总结补充一下: 1、结构体是值类型,类是引用类型. 2、结构体不能带有无参的构造函数,但是类可以。 3、结构体不可以实现类似于类的继承,但是可以继承接口
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2