class和struct的区别
2006-10-20 16:02
399 查看
C#中很多数据类型都是用struct类型定义的,属于值类型。
C#定义的class属于引用类型
具体分析二者的区别,就要提到堆(heap)、栈(stack),栈是一种后进先出的数据结构,是处理器中支持的一块内存区域,存放的是一些局部变量;堆是一块动态分配的内存区域。
C#中值类型分配在栈中,引用类型则分配到堆中;
C#中一切都是对象,包括数据类型;前面我们提到C#中的一些数据类型是用struct定义的,struct是从ValueType继承来的,而ValueType是从Object继承来的,所以值类型也是对象。
C#内存回收器会在栈框架结束后回收栈内存,比如一般栈框架是在方法中定义,那么方法结束后,里面定义的一些变量就会被回收;
而堆内定义的对象在对象最后一次引用之后才能回收,从这一点上二者有很大的区别。
C#定义的class属于引用类型
具体分析二者的区别,就要提到堆(heap)、栈(stack),栈是一种后进先出的数据结构,是处理器中支持的一块内存区域,存放的是一些局部变量;堆是一块动态分配的内存区域。
C#中值类型分配在栈中,引用类型则分配到堆中;
C#中一切都是对象,包括数据类型;前面我们提到C#中的一些数据类型是用struct定义的,struct是从ValueType继承来的,而ValueType是从Object继承来的,所以值类型也是对象。
C#内存回收器会在栈框架结束后回收栈内存,比如一般栈框架是在方法中定义,那么方法结束后,里面定义的一些变量就会被回收;
而堆内定义的对象在对象最后一次引用之后才能回收,从这一点上二者有很大的区别。
相关文章推荐
- C++中struct与Class的区别
- C++中struct与class的区别是什么?
- class 和 struct的区别
- C++中struct与class的区别
- class 和 struct 的区别
- struct和class区别的背后
- C#中Struct与Class的区别
- C#中struct与class的区别
- c++中struct和class的区别
- struct和class的区别 观察者模式 https连接 点击button收到点击事件,中间发生了什么
- Struct和Class的区别(转载)
- struct与class区别
- 在c++中struct和class的区别
- C++中struct与class的区别是什么?
- 用结构(STRUCT)和类(CLASS)定义一个类的区别
- C++中struct和class的区别
- .NET中class与struct的区别简析
- 程序员面试 ---- struct和class的区别
- Struct和Class的区别
- C++ class和struct的区别