.NET中class与struct的区别简析
来源:互联网 发布:软件需求统计表 编辑:程序博客网 时间:2024/05/01 12:57
了解了class和struct的本质,我们可以通过分析和实验来总结二者的区别了:
(1)关于实质:class是引用类型,struct是值类型
(2)关于职能:class是行为的封装,用来表述对象,而struct是数据的封装,用来储存数据
(3)关于继承:class支持继承自类和接口;而struct只能支继承接口。struct不能从class继承,也不能作为class的基类。
(4)关于构造函数:class可以声明无参构造函数,可以声明析构函数;而struct只能声明带参数构造函数,且不能声明析构函数。
(5)关于实例化:class要使用new关键字;而struct可以不使用new关键字,struct在声明时就进行了初始化过程,所有的成员变量均默认为0或null。
(6)关于抽象:class可以实抽象类(abstract),可以声明抽象函数;而struct不能。
(7)关于重载:class可以声明protected成员、virtual成员、sealed成员和override成员;而struct不可以,但是值得注意的是,struct可以重载System.Object的3个虚方法,Equals()、ToString()和GetHashTable()。
(8)关于比较:两个class的比较有Equals和==两种,即值相等和引用相同;而两个struct可以直接通过==来判断。
(9)关于销毁:class实例由垃圾回收机制来保证内存的回收处理;而struct变量使用完后立即自动解除内存分配。
(10)关于参数传递:class变量是以按址方式传递;而struct变量是以按值方式传递的。
所有这些是struct有一席之地的理由,当然也许还有其他的更多说法,只是我不知道罢了。
- .NET中class与struct的区别简析
- .NET中struct与class的区别
- .NET中class和struct的区别
- .NET中class和struct的区别
- .NET中class和struct的区别。
- .net中class和struct的区别
- .NET中class和struct的区别
- C++ 中 struct 与 class的区别
- C#中class与struct的区别
- C++中class与struct的区别
- C++中Struct与Class的区别
- C++中class与struct的区别
- c++中 class与struct的区别
- C++中struct与class的区别
- C++中struct与class的区别
- C#中class与struct的区别
- C++中class与struct的区别
- C++中class与struct的区别
- JAVA输入流 遇到的问题.
- 企业应用的分层设计理念
- DotNet四个基本概念
- VC6.0下一个不知道的错误
- 记录在实验室的点滴
- .NET中class与struct的区别简析
- 经典笑话:初吻
- 工作流模式
- UI设计规范收藏
- 【Java插件开发】Java用commons-email-1.1.jar实现发邮件功能
- .Net中Dispose()和Close()的区别
- memcpy () 函数
- IT人,走好技术之路
- 提高开发水平的几项必备技术