struct与class区别
来源:互联网 发布:缅甸非法网络彩票赌博 编辑:程序博客网 时间:2024/06/04 20:02
Class和Struct之间的共同点 和 区别?
共同点:都能够包含数据成员以及函数成员的数据结构。
using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CSharpStruct{ class Program { static void Main(string[] args) { //1.1. 定义一个struct结构。(构造 析构 结构的调用 ) Instance ex = new Instance(10,10) ; Console.WriteLine(ex.x); Console.ReadKey(); } public struct Instance { public int x; public int y; public Instance(int a,int b) { this.x = a; this.y = b; } } }}
区别:
Class为引用类型,继承自System.Object,引用类型在堆上分配地址,可以设置为空(null);Struct为值类型,继承自System.ValueType.在堆栈上分配地址,不可以设置为空(null);堆栈的执行效率比堆高,但是堆栈的资源有限,不适合处理大的逻辑对象,因此Struct适用于作为经常使用的一些数据的新类型。Class比较适合大的和复杂的数据;
Struct是密封的,不能派生和继承,也就是没有protected和protected internal 以及sealed关键字;
Struct可以不用new初始化,在声明时就进行了初始化工作,Struct实例无参的时候可以无new,但如果时有参的构造函数时,就要用到new,所有的变量默认为0或者null,但是Class必须使用new关键字进行初始化;
类作为参数类型传递,传递的是引用地址,struct作为参数类型传递,传递的是值。
Struct程序员只能申明有参的构造函数,不能包含显示默认构造函数,因为编译器会自动提供一个构造函数,不能声明析构函数;Class有默认的构造函数,可以申明无参构造函数,有析构函数。
- calss实例由垃圾回收机制保证内存的回收处理,而struct变量使用完之后立即自动解除内存分配。
附:
你认为在游戏制作过程中,那些数据定义成类,那些数据定义成结构。为什么?
结构:一些底层的信息,如角色的坐标,血量,颜色等轻量级基础属性;
类:复杂的可变的数据。
0 0
- class 与struct 区别
- struct 与 class区别
- struct 与 class区别
- class与struct 区别
- struct与class区别
- 浅析class与struct区别
- struct与class的区别
- 浅析class与struct区别
- class与struct的区别
- class与struct的区别
- class 与 Struct的区别
- class 与 struct 的区别
- struct与class的区别
- struct与class的区别
- struct与class的区别
- c++ struct 与class 区别
- struct与class的区别
- struct与class的区别
- 在CentOS 6.4中编译安装GCC 4.8.1 + GDB 7.6.1
- java笔试+面试总结——web篇
- Android LRecyclerView
- UIImageView 之 contentMode属性
- 移动端开发rem单位的格式化js文件flexible.js
- struct与class区别
- TOMCAT 之 startup.bat文件分析
- listview的上拉加载,下拉刷新
- Android自定义View(一)
- STL中的排序函数(模板)
- java笔试+面试总结——mysql
- MD5加密算法及应用
- Java中的abstract方法和abstract类的问题
- 06_多线程_生产者消费者